Уважаемый всеми продвинутыми мэпперами мира
програмист 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
|