2016-05-26 9 views
4

Я просто попадаю в освещение с Unity 3d и теперь имею функцию, которая постепенно углубляет освещение моей сцены здесь. Я сделал это с помощью Настройки рендеринга и попытался 3 различных подходов с освещением, я получил тот же результат со всеми из них:Unity и C#: Как изменить общее мировое освещение не только на землю? Другие объекты, не освещенные с помощью RenderSettings?

   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, это происходит.

Как я могу осветить всю сцену равномерно? Что здесь происходит?

Проблема:

enter image description here

+1

Я жду, чтобы увидеть ответ на это тоже. Освещение в единстве было, безусловно, самым большим препятствием. Многое из этого не кажется укорененным в любой логике, что я могу обернуть мой мозг вокруг. –

ответ

0

Unity реализует систему освещения, которая сочетает в себе, как правило, в режиме реального времени и предварительно вычисленный освещение. Окружающий свет, который вы видите, воздействует на землю, вероятно, предварительно вычисляется. Однако блоки в верхней части земли не включены в предварительно вычисленное освещение. Поэтому, помещая эти блоки как static, они добавят их в предварительно вычисленное освещение, а также сделают их недоступными для редактирования во время выполнения. Для получения дополнительной информации см. Ссылку ниже.

TL; DR:

только статическая геометрия рассматривается предварительно вычисленных решений освещения Единству. Чтобы начать процесс прекомпопуляции освещения, нам понадобится хотя бы один GameObject, обозначенный как «статический» в нашей сцене. Это можно сделать индивидуально или путем выбора нескольких GameObjects с панели иерархии.

Quoted from the unity 5 documentation about lighting and rendering

+0

Спасибо, но я не думаю, что это проблема - пол не был помечен как статический, и я не мог найти Gameobject, который был. Затем я сделал блоки и пол статическими без разницы. Я добавил фотографию на свой вопрос: есть ли способ достичь даже освещения или изменить JUST цвет неба, а не объекты внизу? Кстати, у меня есть сцена в большей сетке; это имеет значение? – skyguy

 Смежные вопросы

  • Нет связанных вопросов^_^