Создание детализированных теней.

Одна из основных проблем при картостоении под quake3 является
сложность с установкой хорошего освещения.
Однако поставить хорошо свет это половина дела. На уровне все равно будут невыразительные, теряющиеся в общей массе тени.
Причина состоит с малом размере карты теней (lightmap).
К сожалению quake3, в отличии от Enemy Territory не имеет поддержки карт теней высокого разрешения, позволяющий делать карты теней размером 1024х1024 (стандартый размер lightmap в q3 - 128x128). Но тем не мение есть способ значительно улучшить качество теней на уровне.
Для компиляции небходим q3map2.
Для начала немного отредактируем один из шейдеров текстур.
Открываем шейдер base_floor.shader и ищем в нем описание текстуры proto_grate4. В нем меняем строку surfaceparm nonsolid на surfaceparm alphashadow (то-есть мы изменяем "неплотность" текстуры на функцию, позволяющую компилятору рассчитывать тень через альфаканал текстуры.
Открываем в радианте карту-пример и компилируем ее.

На выходе мы получаем невыразительную картинку:

Теперь, чтобы сделать тени более детальными, мы открывает в радианте
свойства worldspawn (выделяем любой браш, не являющийся entity
(обычную стенку, к примеру) и нажимаем N)
и и добавляем
ключ _lightmapscale и указываем его значение: 0.1

(В принципе, будет достаточно значения 0.256, при условии,
что не надо сильно детализировать альфа тени)
.



Особенности компиляции:

В bsp фазе обязатеньно необходим ключ -meta в противном случае скэйл
лайтмэпов неработает. Теперь главное - расчет освещения.
Поскольку мы, не меняя размера лайтмэпа, просто меняем его маштаб,
то при сильном перемаштабировании (значение менее чем 0.256)
начинает вылезать "лесенка", которую необходимо сгладить.
Для этого вы используем ключ -filter.

В результате мы имеее на выходе вот такой результат:



Cкачать заготовку можно тут

Added: April 28, 2005, (c) Kirk Barnes

Сайт создан в системе uCoz