Масштаб текстуры материала в облегченном конвейере рендеринга - PullRequest
0 голосов
/ 01 мая 2019

Я использую масштабированные плоскости для создания геометрии для моего уровня. Эти плоскости имеют общий материал, но из-за масштабирования текстура на плоскости также растягивается. Перед переключением на облегченный профиль рендеринга я использовал этот код для смягчения этой проблемы:

var render = GetComponent<MeshRenderer>();
var scale = new Vector2(transform.localScale.x, transform.localScale.z);
render.material.SetTextureScale("_MainTex", scale);
render.material.SetTextureScale("_BumpMap", scale);

, который создал экземпляр материала и изменил свойство Tiling в соответствии с локальным масштабом объекта.

Тем не менее, после перехода на облегченный RP код не масштабирует текстуру. При регистрации render.material.mainTextureScale в консоли отладки отображаются мои обновленные значения, но когда я проверяю GameObject, к которому он присоединен, свойство Tiling материала не изменилось.

Материал использует шейдер Lightweight Render Profile/Lit.

Есть ли способ исправить это в моем коде C #? Если нет, есть ли способ сделать это без изменения способа, которым я делаю уровни?

1 Ответ

0 голосов
/ 16 июня 2019

Да, я обнаружил, что это возможно.Я посмотрел в шейдер, и проблема в том, что у вас нет карты "_MainTex", которую ищет код.

Чтобы исправить это, измените все экземпляры "_MainTex" на "_BaseMap",которая является правильной картой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...