Плавная смена Ambient Light - Форум Игроделов
Ср, 08 Май 2024, 23:40 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » ОБЩИЕ ВОПРОСЫ » Плавная смена Ambient Light
Плавная смена Ambient Light
NapalmRainДата: Вт, 15 Сен 2015, 07:25 | Сообщение # 1
 
Сообщений: 473
Награды: 0
Репутация: 31
Статус: Offline
Доброго всем времени суток!

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

В режиме Ambient Mode: SkyBox RealTime ничего хорошего не получается. По всей видимости сцена через чур объёмная и он просто не успевает её просчитать. Всё сцена всегда чёрная.
Поэтому решил пойти по старинке и использовать Ambient mode: Color и менять его параметр динамически вместе со сменой неба.

В скрипте завёл массив цветов и меняю их с течением времени
Код
RenderSettings.ambientLight = Color.Lerp(RenderSettings.ambientLight, AmbientColors[nextSky], Time.deltaTime * 0.1f);


Всё вроде бы прекрасно, но почему-то мне кажется, что мой метод больше походит на костыль...

Поделитесь пожалуйста мнением или опытом, как грамотней поступить в моей ситуации.

Заранее благодарю!


Сообщение отредактировал NapalmRain - Вт, 15 Сен 2015, 07:29
 
СообщениеДоброго всем времени суток!

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

В режиме Ambient Mode: SkyBox RealTime ничего хорошего не получается. По всей видимости сцена через чур объёмная и он просто не успевает её просчитать. Всё сцена всегда чёрная.
Поэтому решил пойти по старинке и использовать Ambient mode: Color и менять его параметр динамически вместе со сменой неба.

В скрипте завёл массив цветов и меняю их с течением времени
Код
RenderSettings.ambientLight = Color.Lerp(RenderSettings.ambientLight, AmbientColors[nextSky], Time.deltaTime * 0.1f);


Всё вроде бы прекрасно, но почему-то мне кажется, что мой метод больше походит на костыль...

Поделитесь пожалуйста мнением или опытом, как грамотней поступить в моей ситуации.

Заранее благодарю!

Автор - NapalmRain
Дата добавления - 15 Сен 2015 в 07:25
Форум Игроделов » UNITY3D » ОБЩИЕ ВОПРОСЫ » Плавная смена Ambient Light
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024