Аналог стандартного Terrain шейдера
Взял за основу FourSplit и хотелось бы чтобы все 4 слоя поддерживали Tiling и Offset. Собственно сам шейдер:
Код:
SubShader { Код:
tex2D(_TileTextureA, IN.uv_TileTextureB) * abs(1 - blend.a); Код:
tex2D(_TileTextureA, IN.uv_TileTextureA) * abs(1 - blend.a); "Too many texture interpolations ... (11 out of max 10)" В шейдерах не силен, что в коде нужно исправить, чтобы обойти это ограничение? |
Ответ: Аналог стандартного Terrain шейдера
Кое что откопал:
https://docs.unity3d.com/Manual/SL-ShaderSemantics.html Цитата:
|
Ответ: Аналог стандартного Terrain шейдера
Юнити трансформирует все эти uv_ в вертексном шейдере и передаёт в пиксельный, и ты не влезаешь в количество передаваемых данных. Можно пойти другим путём - объявить свои собственные Vector4 параметры тайлинга/оффсета и плющить ими одинаковые uv внутри surf функции (типа IN.дефолтныеUv * tilingOffsetR.xy + tilingOffsetR.zw).
Это может быть мизерно медленнее, чем в вертексном, но должно работать и влезать. |
Ответ: Аналог стандартного Terrain шейдера
Впрочем к чему эта морока, скачал стандартный Nature/Terrain/Diffuse с официального сайта, можно использовать... Запустил работает. Единственное немного запнулся с цветами текстуры маски Terrain.
В экспериментах. Для извлечения текстуры маски из готового Terrain в png использовал инструмент: https://mattgadient.com/2014/09/28/u...tmap-to-a-png/ |
Часовой пояс GMT +4, время: 10:30. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot