Что делать, если статик меши освещены ярче остального уровня

Любой, кто занимается созданием карт для UT2004 и использует Ambient Lighting для освещения уровня, сталкивался с такой проблемой: статик меши оказываются в несколько раз ярче, чем геометрия.

Немного подробнее об этом баге: Unreal Engine 2 использует различные методы для освещения мешей и геометрии, что приводит к тому, что, хотя обычное освещение (light акторы) влияет и на меши, и на геометрию примерно одинаково, ambient brightness (общее освещение, устанавливается в свойствах ZoneInfo или LevelProperties в разделе ZoneLight) освещает статик меши (static mesh) в 4 раза ярче, чем геометрию.

Обычно это решается либо отказом от использования ambient brightness, либо использованием только лишь мешей или только лишь геометрии, либо учитыванием разницы в освещении в текстурах мешей. Но есть также и один небольшой трюк. Сразу скажу, что он НЕ работает, если для освещения используется формат RGB8.

Для начала создадим комнату для теста. Если у вас есть свой уровень, можете делать сразу на нем.
Вырежем куб, поместим в нем любой статик меш и актор ZoneInfo (Actor->Info->ZoneInfo). Получится что-то подобное.

Нажмем на кнопку Build All. Наша комната стала полностью темной.

Теперь выберем наш ZoneInfo, откроем его свойства (F4) и раздел ZoneLight.
Там есть три свойства, отвечающие за общее освещение:
AmbientBrightness - отвечает за яркость освещения
AmbientHue - отвечает за цвет освещения
AmbientSaturation - отвечает за насыщенность цвета освещения
Устанавливаем значение AmbientBrightness на 64. При этом статик меш стал виден, хотя сама комната остается черной.

Снова нажмем Build All. Стены теперь освещены, но не так ярко, как меш.

А теперь сам трюк: устанавливаем значение AmbientBrightness в 4 раза мешьше, чем оно было до ребилда. У нас оно было 64, значит ставим 16.

Вуаля! Статик меш теперь освещен точно также, как и геометрия.

До:

После:

Заметьте, что данный способ необходимо применять в самый последний момент, ведь при повторном ребилде освещения меши снова будут освещены в 4 раза больше.

Информация

Автор: Sly, перевод UnShame

Добавил: UnShame (Другие статьи пользователя)

Дата добавления: 10 Мая 13, 07:06

Категории: Unreal Tournament 2004 - Моддинг

Статистика

2719 просмотров, 1 голос

5 комментариев

Aberiu
Aberiu 10 Марта 14
Макс, XSI, Майя. Вроде в Блендере тоже можно.
JUS
JUS 15 Октября 13
ставь лаек есле тожи хочеш сталкер два)))
UnShame
UnShame 08 Октября 13
мозгов нет yaoming
UnShame
UnShame 12 Мая 13
сдвинь его на пиксель после ребилда и он заработает
XCanG
XCanG 12 Мая 13
хмм... не делать ребилд

мне вот интересно, я ещё такое замечал, что свет с анимацией(например пульсар или какая-нибуть игра светотени) перестаёт работать после ребилда уровня и не работает в игре, зато работает в виевпорте эдитора до ребилда. то есть такой свет нужно ставить в самом конце и уже не ребилдить уровень?