Как рассчитать простейшую карту освещённости типа Direct Light
translate it to english
Бета версия !
Пример расчёта карты освещённости ( лайтмэпа ):
-
Запускаем программу LODka3D.
-
Загружаем файл
lmhouse01.zip,
распаковываем его и открываем через меню Menu->File->Open.
Модель - это стандартная комната с двумя окнами, и двумя колоннами, которую
часто используют для демонстрации расчётов схем освещения.
-
Выбираем в файле первый меш Mesh1 и первую Фэйс-группу в
нем Group1.
-
Заходим в редактор схем освещения Menu->Edit->Light schemes ... ,
переключаемся на закладку File. На этой закладке находятся схемы
записанные в файле. Для данного файла там есть только одна
схема освещения 4light1, выбираем её
и закрываем редактор.
-
В выбранной схеме освещения включено два источника света. Чтобы их
увидеть нужно поставить галочку Menu->Edit->Show LigthSources.
Тогда появятся две проволочные конструкции показывающие
расположение источников света в пространстве.
-
Включаем окно генератора лайтмэпов. Menu->Edit->LightMap generator.
Здесь два раздела:
-
LigthMap packing - позволяет расположить текстурные
координаты треугольников на текстуре так, чтобы они не перекрывали друг
друга и по-возможности соприкасались друг с другом теми же гранями,
которыми они соприкасаются в модели. То есть образовывали группы.
Опций две:
-
Padding - расстояние между группами. В пикселях. Поэтому
размер текстуры важен и здесь.
-
Normals angle - это максимальное расхождение нормалей
треугольников,
чтобы они считались находящимися в одной группе. Чем меньше, тем больше
групп будет создаваться ( если, конечно, это возможно ). Задаётся в
градусах.
-
Direct Lighting - это тип расчёта карты
освещённости, при котором используются точечные источники освещения.
Настройки:
-
Calc shadows - рассчитывать ли тени ? Если нет, то
расчёт идёт намного быстрее, но без теней.
-
Octree accuracy - точность при вычислении теней. То есть
насколько длина луча света, падающего на точку, рассчитанная при
помощи алгоритма Octree может отличается от реального
расстояния между источником света и вычисляемой точкой.
-
Draft - черновик. Вычисляются не все точки подряд, а через раз.
Образовавшиеся же дырки закрываются среднем арифметическим близлежащих
высчитанных точек. Опция нужна для ускорения.
-
Emission color - цвет добавляемый ко всем вычисленным точкам
( в том
числе и тем, которые находятся в тени. С помощью опции лайтмэп можно
осветлить.
-
Texture color - цвет текстуры в "пустых" местах. Между
полигонами.
-
Brightness - яркость источников освещения. Общая для всех
источников. На места находящиеся в тени опция не влияет.
-
Выбираем размер текстуры скажем в 1024. Ставим галочку тени Shadows.
Выбираем Emission color, скажем серый, ставим Brightness в 0.7 .
И нажимаем на кнопку
Start. Некоторое время будет идти расчёт. Время расчёта зависит
от скорости работы компьютера. По окончании расчёта можно будет нажать
на кнопку Log и посмотреть какой этап сколько времени рассчитывался.
Обычно дольше всего рассчитываются треугольники в Direct Light.
Потом закрываем окно и смотрим результат. ( см. скриншот )
-
Чтобы результат был лучше виден, надо не забыть отключить освещение
Menu->Edit->Lightings
-
Изменять параметры источников освещения можно в редакторе схем освещения
Menu->Edit->Light schemes ... .
Параметр Shiness ( свечение ) - позволяет включать/отключать
выбранный источник освещения в схеме. Параметр Position - задаёт
его позицию. Параметр Diffusion - цвет освещения.
Параметры Const attenuation, Linear attenuation и
Quadratic attenuation определяют ослабление света в зависимости
от удаления от источника. Коэффициент ослабления вычисляется по формуле :
k = Const attenuation +Linear attenuation*Distance
+Quadratic attenuation*Distance*Distance
Остальные опции не используются.
Учтите, что это пока только бета.
Обсудить :
gamedev.ru
© LODka3D 2006