Создание качественной Normal map
Здравствуйте, товарищи мапперы! Сегодня товарищ
LexxoR
попытается толкнуть свою
идею по созданию правильной и качественной карты нормалей.
Итак, вас уже захватили два слова – «правильной и
качественной». А чем же так неправильны и некачественны карты высот, созданные,
допустим в
Crazy
Bump?
Честно говоря, всем. Карта нормалей получается из 2D
изображения, а самое нужное нам – информацию о рельефе – генератор карт нормалей
«выдумывает» сам, пользуясь рисунком. Результат такого выдумывания – что-то, с
выпуклостями и углублениями в самых неожиданных местах… Если вам нужно качество
– читайте дальше, если нет – этот туториал заканчивается вот на этой точке ==>.
Известно, качество требует времени и некоторых знаний. Для
создания
Normal
Map нужно
некоторое знание пакетов 3ds
Max
и наличие программы
ZBrush
(я постараюсь как можно детальней и последовательно описать свои действия). Ну
и наличие мозгов тоже лишним не будет.
И так, у вас есть текстура.
Например, эта:
Для начала нам нужен меш с
наложенной на него текстурой. Так как я не знаю, как орудовать с текстурами в
ZBrush, эти операции я проделываю в 3ds
Max
(как только узнаю – сразу расскажу, честное геймдевское!).
Создаём меш с параметрами
высота-длина-ширина 512*512*512:
Теперь
укажите
в
Length Seg, Width Seg
и
Height Seg 200:
Благодаря этим дополнительным сегментам появляются
дополнительные вертексы, по которым мы и будем рисовать карту нормалей в
ZBrush.
Далее, жмём правой кнопкой мыши по мешу (модели) и выбираем из
меню
Convert
to ->
Convert
to
Editable
Mesh.
Эти действием мы превращаем созданный примитив в редактируемый меш, и после
этого сможем провести нужные операции по наложению текстуры.
Кликните левой кнопкой мыши по модели, нажмите кнопку «M»
(английская раскладка), открывается окно редактора материалов. В нём выбираем
нашу текстуру:
Кликаем на маленькую кнопку напротив надписи
Diffuse,
а затем в открывшемся окне
Map
Browser
2 раза кликните
Bitmap
– и в открывшемся окне укажите путь к Вашей текстуре:
Теперь, чтобы присвоить текстуру
к фэйсам (сторонам) модели и сделать текстуру отображаемой во вьюпорте (Viewport
-
окне, где отображается модель), нажмите клавиши 1 и 2 (как на
рисунке):
По окончанию этих действий на
созданном нам кубе должна быть наша текстура. Можно закрыть
Material
Editor.
Ок, теперь нам нужно применить
модификатор
UVW
Map,
чтобы текстура легла правильно.
Перейдите к вкладке «Modify», из выпадающего списка выберите
UVW
Map;
далее, выберите из предлагаемых вариантов наложения координат «Box» и рядом с параметрами
Length,
Width
и
Height
пропишите 512:
«Болванка» готова! Теперь её
нужно экспортировать в понятный для
ZBrush
формат *.obj
– заходим в меню
File
– Export
и экспортируем наш кубик
в формате
obj,
в появившемся окне ничего не изменяем и жмём «ок»:
Теперь можете закрыть 3ds
Max, он нам пригодится немного позже.
Запускаем великий и ужасный
ZBrush!…
В стартовом окне, где нам
предлагают:
Load a ZBrush
tool
Import an OBJ
file
Other
жмём второй пункт и указываем
путь к нашему кубику.
ГОСПАДИИИИ!! ААААА! Текстурге
нету!!! ЧО ДЕЛАТЬ? КАК БЫТЬ?
Спокойно! Сейчас мы присвоим
нашему творению его родную тексу – кликните по кнопке с надписью
Texture
Off – появится меню. В нём жмём
Import
и указываем путь к арту:
Вот и всё! Теперь самое интересное – приступаем
непосредственно к рисованию!
Небольшое отступление – я хочу
вкратце рассказать, каким способом происходит навигация во вьюпорте
ZBrush:
-
Инструмент
Move
(перемещение) – зажмите на пиктограмме левую кнопку (далее – л.к.) мыши и
начинайте водить мышью;
- Инструмент
Scale
(масштаб) – управление идёт так же;
- Инструмент
Rotate (вращение) – управление идёт так же.
Что касается вращения, то можно
не пользоваться пиктограммой – просто зажмите л.к. мыши на пустом месте вьюпорта
и вращайте объект. Если его размер или величина охватывают весь вьюпорт, то вы
можете вращать объект, используя место за линиями (цифра 4) на скриншоте).
Для того чтобы поставить объект
идеально параллельно любой оси, вращайте его с зажатой клавишей
Shift.
Чтобы отменить действие – нажмите
Ctrl+Z,
чтобы повторить –
Ctrl+Shift+Z.
Идём далее…
Рисование происходит с помощью
кистей. Доступ к ним производится вот из этого меню:
А вот как кисти настраиваются:
-
ZAdd
– Включает режим выдавливания полигонов наружу
-
ZSub
– включает режим вдавливания полигонов внутрь
-
Z
Intencity
- интенсивность кисти («нажим»)
-
Draw
Size
– размер кисти
Итак, есть 2 варианта рисования
бампа (карты нормалей) для этой текстуры – можно сделать «канавки» между
кирпичами, а можно намалевать сами кирпичи. Я буду рисовать «канавки»!
Включаем режим «ZSub» для вдавливания, я выставил такие настройки: интенсивность – 100, размер
кисти – 4.
Вот что получилось:
Эээ… В общем я думаю, что Вы
рисуете лучше :-)
Поэкспериментируйте с кистями,
добавьте вмятины и выпуклости там где они по идее есть (например, на данной
текстуре кирпича можно разглядеть маленькие комки засохшей краски, различные
неровности и т.д.). Чем детальней и чем больше ваша карта нормалей будет
соответствовать текстуре, тем лучше.
Ок, наш бамп нарисован – теперь
нужно экспортировать его обратно в
obj,
чтобы преобразовать наш исковерканный меш в
normal
map.
По
идее,
normal
map
можно «снимать» с
моделей и в
ZBrush,
однако я с эти процессом пока не знаком :-)
Итак, экспорт:
Далее в появившемся окне
указываем куда сохранить модель, выходим из
ZBrush
и запускаем 3Ds
Max.
Импортируем в макс модель:
Указываем
тип файла для экспорта и путь к модели…
В появившемся окне с настройками
импорта
obj
файла ничего не меняем и жмём
Ok.
Вот что мы видим:
Нам нужна только сторона с
рельефом, остальное нужно удалить:
Далее, снимаем карту нормалей
вот по этому уроку:
http://3dmir.ru/index.php?id=3dsmax&tutor=441
Затем загружаем в
Photoshop, доводим бамп до ума (делаем бесшовным (в интернете есть
очень много уроков, как это сделать), указываем нужный размер) и экспортируем
через плагин в формат
HL2.
Чтобы подключить карту нормалей,
пропишите в vmt файле следующее:
"$bumpmap"
"brick/brickwall_001_normal"
Затем скомпилируйте карту. Вот
примерно то, что должно получиться (у меня вышло очень уж «не айс», если хорошо
постараться, то можно получить гораздо лучшие результаты – но текстура вместе с
картой нормалей в любом случае выглядит гораздо лучше, чем без):
Спасибо за внимание, надеюсь,
Вам понравился и пригодился этот урок!
ещё o ZBrush
LexxoR,
20.10.08.
|