Часть I. Подготовка
Опишу свои эксперименты с генерацией нормала из текстуры и попытками создать рельефный, «глубокий» нормал, а так же спекуляр и параллакс.
Идея взята из туториала на cgtextures.com “Recovering detailed normalmaps from photo textures”, Scott Warren. Однако, после серии тестов, проб и ошибок метод, описанный там, изменился. Эти изменения я вам и опишу.
Также, подобного резльтата можно добиться в программе CrazyBump, если она у вас есть.
Выбор за вами.
Для генерации карты нормалей в Photoshop’е я буду использовать NVIDIA Normal Map Filter (v8.20 beta). Свежую версию можно скачать отсюда (текущая версия — 8.23.1101).
Я буду делать обычный нормал, без особых хитростей. Т.е, основой будет Grayscale (градации серого) картинка.
Немного теории
Черные (темные) пиксели — вдавливаються.
Белые (светлые) — выдавливаются.
“Белый Бим, черное ухо“, Киностудия им. М. Горького, 1977 год
Разделение на черные и светлые происходит на 50% сером (RGB = 128, 128, 128).
50% серый — это плоскость. Как земля, где ямы — черные, а горы — белые.
Я буду делать нормал для этой текстуры:
Это мостовая в Вильнюсе.
Первый шаг — это обесцвечивание текстуры (Desaturate).
В принципе уже на основе этой текстуры можно генерировть карту нормалей, а можно немного улучшить ее, подняв контрастность. Я использую этого Levels или Curves.
В итоге темные участки стали темнее, а светлые — светлее.
Интерфейс фильтра содержит много переключателей, «радиокнопок» и окошек для ввода каких-то значений. Help отсутствует.
Я и сам не знаю значения всех переключателей. Расскажу только про те, которые использую. Информацию про остальные ищите в Интернете.
Инвертирование нормалей
Что будет если включить Invert Y. Для примера я попробовал инвертировать только по оси Y.
На скриншоте из 3ds max видно, что если сгенерировать нормал с инвертацией по Y — мы получим в 3D-редакторе вдавленный нормал, хотя надпись должна быть выдавленной, т.к. она белого цвета.
Источник света в сцене установлен специально для того, чтобы видеть тени и по ним определить, вдавлен или выдавлен normal-map.
Если мы будем работать только в максе, с установками по умолчанию, нам подходит вариант без инвертации по какой-либо из осей.
Хочу предупредить, что в игропроме заказчики часто просят генерировать нормал с инвертацией по Y. Видимо, это связано с принципами обработки карт нормалей в игровых движках.
В 3ds max, в свойствах Normal Bump можно управлять параметрами инвертации.
Ставим галочку — и все становится правильно.
Если вы когда-нибудь будете генерировать нормал с помощью модификатора Projection — то там вы тоже сможете увидеть управление инвертацией (каналами цветов).
В итоге я буду генерировать без инвертации по осям и использовать установки материала Normal Bump в 3ds max по умолчанию.
Сила нормала (scale)
Смысл параметра, я думаю, понятен. Я обычно использую значение 4, но можно как больше, так и меньше.
Способы генерации (Height Source, Alternate Conversions)
Их в списке 10 штук. Но я в зависимости от ситуации применяю только 3 из них.
- Average RGB
- Biased RGB
- Colorspace
Обратите внимание, в списке Alpha Field надо установить Unchanged.
Я сгенерирую нормал всеми тремя способами. С двумя параметрами силы 4 и 12.
Задача: получить выпуклый, выразительнй нормал.
Лара Крофт, Eidos Interactive
Без нормала и прочих технологий сейчас никуда!
Leave a Reply
You must be logged in to post a comment.