Уважаемый всеми продвинутыми мэпперами мира
програмист q3map2 господин Ydnar
порадовал нас нововведением, известным как
"рельефное текстурирование" (bumpmapping).

Что нам понадобится, чтобы самим сделать этот эффект:
             
 1. Adobe Photoshop (версии 6-7)
 2. Плагин от Nvidia который генерит карты высот скачать его можно здесь
    (данный плагин требует установленного в системе DirectX 9)
 3. Notepad для написания шейдера.
 4. q3map2 версии не ниже 2.3.24. Скачать новую версию можно здесь
 5. Если у Вас установлен Photoshop версии 7.0 - не помешает на будущее
    (например, для работы с TGA текстурами, содержащими альфа-канал)
    установить файлик Targa.8bi от шестого фотошопа, 
    в директорию File Formats
    (например - C:\Program Files\Adobe\Photoshop 7.0\Plug-Ins\File Formats)
    поверх существующего файла. 
    (targa.8bi от седьмого фотошопа НЕ сохраняет файлы TGA, 
    содержащие альфа-канал)
Работа в Photoshop:
После того как был скачан плагин для Photoshop'a
его необходимо подключить к нему.
Для этого плагин NormalMapFilter.8BF
копируем в папку плагинов программы
(к примеру - C:\Program Files\Adobe\Photoshop 7.0\Plug-Ins\Filters).
После этого запускаем программу и открываем файл с текстурой,
к которой мы хотим сгенерить карту высот.
Размер текстуры желательно не должен привышать 512х512 пикселей, 
иначе возможны проблемы с плагином (вплоть до зависания программы).
    
Затем запускаем плагин, который выдает предупреждение что больше чем
с тремя каналами цветов он работать
не будет и альфа канал не расчитывается:
Нажимаем ОК.
Появляется окно фильтра, в котором мы выбираем - Filter Type: 4 sample
(Filter type означает, по какому количеству
сэмплов расчитывается фильтр).
Значение 4 является оптимальным
Затем в окне Scale выбираем уровень высоты.
Потом в окне Alternate Conversions выставляем, по какому принципу
раскладывается цвет (оптимально - Max R,G,B).
После чего нажимаем ОК.
Полученную карту высоты сохраняем как файл TGA 32 bit. 
Итак - мы получили карту высот.

Пишем свой шейдер:

Типовой шейдер имеет следущий вид:
             
     textures/box/nukebox
     {
     qer_editorimage textures/box/box1.tga
     (текстура которая видна в радианте)
     q3map_normalimage textures/box/box1_bump.tga
     (карта высот сгенеренная в photoshop)
     {
     map $lightmap
     }
     {
     map textures/box/box1.tga
     (собственно сама накладываемая текстура)
     blendfunc gl_dst_color gl_zero
     }
     }

Подготовка брашей в Radiant-e:
             
Браши на которых будут класться текстуры с "бампом",
необходимо сделать func_group, присвоить этой группе
ключ -lightmapscale со значением 0.1.
Надо учитывать, что данный эффект не расчитан на использование везде.              
Чем больше браш - тем меньше виден рельеф.
             
Считаем карту:
           
Для компиляции необходимо, чтобы bsp расчитывался с ключем -meta,
а light с ключем -super 2 (чем выше значение тем лучше).

Вот то, что должно в результате получиться в игре:
           
А вот тестовый режим, в котором можно расмотреть сам рельеф:
(Чтобы его вызвать надо набрать в консоли /r_lightmap 1)
            
Cкачать заготовку можно тут

Added: July 22, 2003
Сайт создан в системе uCoz