[unity3d] Да будет свет !

Все мы знаем, что без хорошего левел-дизайнера "уровни" игры получатся серыми и безжизненными. Но существует профессия Lighting Artist, так же неотделимая от левел-дизайна, как постановка света в хорошем кино.

Влияние правильного освящения можно назвать не иначе, как магией. Взгляните на два скриншота одной и той же сцены : с общим светом, и с точечным. Разница огромна!



Свет наполнил унылую серую локацию неповторимой атмосферой.
Пример аналогичной работы можно увидеть в том же Diablo 3. [ ссылко ]

Что касается подготовки даных: формат источников света в ue2 и unity3d несколько отличается.



Исходный анриловский цвет, и его параметрия.


С пересчетом все просто:
H_unity = H_ue2 *1.4 (360/256 = 1.40625 ~ 1.4)
S_unity = 255 - S_ue2
B_unity = B_ue2 (B в ue2 может повышаться до бесконечности хоть до over9000, но ман рекомендует не выделываться)

EditorGUIUtility.HSVToRGB в силу наркомании юнитеков принимает значения от 0 до 1. Ну нам не жалко 

Синтаксис:
Используется csharp
EditorGUIUtility.HSVToRGB( H_ue2 * 1.4f / 360f, (255f - S_ue2) / 255f, B_ue2 / 255f);



К сожалению не все так радужно. Несмотря на верно перенесенные цвета, остается проблема с яркостью. В результате источники света требуют сверки с оригиналом и ручной правки местами.
Аналогичная проблема с BSP, из-за двойных вершин (рёбра) поверхности могут освещаться не правильно.



Комментарии

  1. Можешь рассказать как ты свет переносил и звук(например StepSound и другие звуки) каким способом.
    Не в движок, а именно на Уровень

    ОтветитьУдалить

Отправить комментарий