Я только начинаю заниматься освещением с помощью Unity 3d, и прямо сейчас у меня есть функция, которая постепенно усиливает освещение моей сцены. Я сделал это через настройки рендеринга и попробовал 3 разных подхода с освещением, я получил одинаковый результат со всеми из них:
RenderSettings.ambientLight = Color.Lerp (RenderSettings.ambientLight, colors2 [currentColor], changeTime * Time.deltaTime);
RenderSettings.ambientSkyColor = Color.Lerp (RenderSettings.ambientSkyColor, colors [currentColor], changeTime * Time.deltaTime);
RenderSettings.ambientGroundColor = Color.Lerp (RenderSettings.ambientGroundColor, colors2[currentColor], changeTime*Time.deltaTime);
Я не совсем понимаю разницу между всем этим, и у меня проблема с освещением мира - когда цвет меняется, цвет неба И земли (который имеет тот же материал, что и другие блоки игровых объектов, которые находятся наверху это) меняют в соответствии с освещением. Т.е. моя белая земля становится оранжевой.
Проблема в том, что блоки на моей земле (тот же материал со стандартным шейдером) не подвержены влиянию / освещению в той же степени. Они остаются в основном белыми / незатронутыми, в то время как моя земля полностью оранжевая. Независимо от того, меняю ли я ambientGroundColor или SkyColor, это происходит.
Как я могу равномерно осветить всю сцену? Что здесь не так?
Проблема: