Создание карт нормалей

В этой статье я опишу процесс создания карт нормалей, на основе которых рисуется Bump Mapping. Процесс очень похож на создание карт высот, но, если параллакс не всегда удачно передает мелкий рельеф поверхности и поэтому с его помощью лучше передавать грубый рельеф, то бамп маппинг как раз лучше передает мелкий рельеф поверхности, небольшие неровности, ямки, сколы, царапины и прочее.

В данном примере я нарисую карту нормалей для текстуры baseq3\textures\gothic_door\xian_dm3arch.jpg – той же самой, что использовалась в примере с параллаксом.

Вообще я ленив, поэтому часто беру за основу рисования карты нормалей – карту высот, так как на ней уже есть грубый рельеф и остается только прорисовать мелкий. Вдвойне ленив потому, что ленюсь этот рельеф прорисовывать, а пытаюсь разными ухищрениями получить его из исходной текстуры ;)

Итак берем исходную xian_dm3arch_h.psd, пересохраняем под именем xian_dm3arch_n.psd. От нас требуется нанести рельеф на камни, так как они наверняка должны быть сильно шероховатые с впадинами и выступами. Также некоторый рельеф есть на металлической окантовке прохода. Рельеф камней рисовать долго, поэтому возьмем исходную текстуру (она у нас на заднем слое). Выделяем камни на отдельный слой, делаем слой черно-белым. В этом случае уже нужно подобрать настройки цветов с целью создания впадин и выступов. После этого можно сделать размытие по поверхности.

Filter/blur/surface blur

Таким образом, на камнях получатся области с укрупненным рельефом (в игре он будет смотреться лучше, чем большое количество мелких одинаковых неровностей). Регулируем яркость/контраст слоя. Яркость +150, контраст +50, чтобы усилить шероховатость.

Filter/blur

Поверх этого слоя остается слой с черными линиями между камнями, оставляем его. Выделяем окантовку прохода на отдельный слой (если это ещё не сделано), регулируем яркость и контраст. Я увеличил яркость на 150 и уменьшил контраст, потому что поверхность металлическая, а следовательно имеет заметно меньшую шероховатость, чем камни. Можно также смазыванием сгладить этот слой (я сглаживать не стал, но иногда нужно). Забегая вперед, скажу, что черный проход лучше закрасить серой заливкой, так как в игре по краям прохода появлялась тень, причем по самому краю прохода шла белая полоса. Итак, у нас получилась такая текстура:

Сохраняем текстуру. После этого нам нужно использовать плагин к Adobe Photoshop под названием NVIDIA Normal Map Filter. Скачать его можно на сайте Nvidia, причем абсолютно без разницы, какая у вас видеокарта. После установки он появляется в меню:

Filter/NVidia tools/NormalMapFilter

Здесь нас интересует параметр Scale, который устанавливает масштаб рельефа. В разных случаях я использую значения от 3 до 15. В данном случае выбираю 7 (иногда приходится несколько раз менять, поэтому нужно сохранять текстуру перед использованием этого плагина). Получаем примерно такую картинку:

Сохраняем эту текстуру под именем:

xian_dm3arch_local.tga

Для карт нормалей уже не нужно сохранять в 32 битном формате. Достаточно 24 бита/пиксель, также можно использовать компрессию. Все – запускаем игру, ищем нашу текстуру.

На данном скриншоте специально отключен параллакс, чтобы лучше был виден эффект бамп маппинга. Хорошо видна разница между текстурой с низкодетализированным бампом (камни слева) и нашей текстурой.

PS важное замечание: на оригинальных текстурах quake3 зачастую уже наложены псевдотени и блики, их нужно вычищать, так как у нас вместо псевдо будут «натуральные»

q3bers/normalmaps.txt · Последние изменения: 25.12.2012 23:56 (внешнее изменение)
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki