Мир хорошо текстурирован
Валерий Минин
Мир настолько хорошо текстурирован, что недосуг нормальному человеку это заметить,
а тем более об этом подумать.
До недавнего времени замечали это лишь романтики да художники, и только в последнее
десятилетие двадцатого века к ним волной компьютерной революции прибило пополнение
- это 3D-дизайнеры (будем здесь и далее употреблять слово "дизайнер",
чтобы обобщить все более узкие профессиональные градации на 3D-поприще). И чем
дальше от примитивных кубиков и шариков в своем совершенствовании продвигается
3D-дизайнер, тем заметнее хорошая текстуризация мира реального и не очень хорошая
мира виртуального. Дальше - больше. Многосуточными бдениями над бесчисленными
ордами вертексов и изопарм отточив моделинг, но не уделив должного внимания
текстурированию, 3D-дизайнер снова остается у разбитого корыта – вроде и корыто
смоделировано один-в-один до миллиметра, вроде и свет хорош и битмапка материала
отсканированная неплоха, ан нет, на настоящее не похоже. И дело здесь не только
и не столько в нанесении правильных текстурных координат (современный инструментарий
UV-маппинга в программах старшего уровня позволяет сделать сколь угодно сложное
текстурирование), а в самом направлении подхода: действительно художественную,
комплексную и, как следствие, реалистичную текстуру можно сделать лишь непосредственно
рисуя на 3D-объекте, а не подгонкой текстуры "за глаза", бесконечно
корректируя ее в Photoshop по результатам тест-рендеринга. Понятие "рисуя"
в данном случае имеет значение более широкое, чем традиционно. Сюда входит местное
точное нанесение любой текстуры с использованием инструментов маскирования на
любой канал (Diffuse, Bump, Opasity, Shininess и т.д ) с последующим сохранением
каждого из каналов как независимой карты в любом графическом формате.
Сегодня мы рассмотрим две программы, позволяющие рисовать текстурой прямо на
3D-геометрии: Discreet Paint* (www.discreet.com) (рис. 1) и Deep Paint 3D (www.righthemisphere.com)
(рис. 2). Выполняя схожие функции, по подходу эти программы сильно отличаются
друг от друга. Судите сами.
Discreet Paint*, являясь независимым графическим редактором с расширенными
возможностями анимации, сквозным образом сопрягается лишь с 3DS Max.
Deep Paint 3D работает как с 3DS Max, так и с Maya, Softimage и Lightwave.
Discreet Paint* не загружает в себя 3D-геометрию, но при назначении карты материала
Paint в редакторе материалов программа загружается параллельно и рисование можно
проводить прямо во вьюпорте 3DS Max. При этом в самой Discreet Paint новая карта
представляется как 2D-развертка.
Deep Paint 3D полностью загружает в себя 3D-геометрию с возможностью полнофункциональной
навигации во вьюпорте.
Между этими программами есть и другие существенные различия, но к ним мы обратимся,
когда будем более подробно рассматривать каждую из них.
Discreet Paint*
Для организации соединения между Discreet Paint и 3DS Max нужно запустить maxpaint.exe
на установочном диске Discreet Paint*, указать корректный путь к корневой директории
3DS Max, при этом будут инсталлированы следующие файлы:
- в корневую директорию – paintengine.dll, xplib.dll;
- в Stdplugs-поддиректорию – iptex.dlt, ipp.bmi;
- в Help-поддиректорию – dlpaint.chm.
Если дистрибутив отсутствует, то файлы, необходимые для соединения, нужно разыскать
в директории, куда инсталлировалась Discreet Paint*, и вручную поместить в указанные
директории 3DS Max. (Подробная инструкция по сопряжению есть в "Help",
пункты "Working with 3D Studio MAX-Connecting paint* to 3D Studio MAX".)
Процедуры Discreet Paint*
Чтобы нарисовать карту материала в 3DS Max с помощью Discreet Paint* делаем
следующее:
- В редакторе материалов активизируем раскрывающийся раздел Maps.
- Выбираем любую карту для рисования с помощью Discreet Paint*, позволяющей
создавать карту на любой канал материала.
- В Map Browser выбираем New в окне Browse From и двумя щелчками активизируем
Paint. При этом в слоте материала появится черный образец.
- В редакторе материалов спускаемся вниз к параметрам новой карты Paint.
Нажимаем радиокнопку Edit. При этом запускается Discreet Paint, появляется
ее интерфейс с диалогом создания нового документа. Выбрав нужные параметры
(линейный размер в dpi, цветовую модель, количество кадров и т. д.), мы готовы
к рисованию новой карты. Чтобы видеть новую карту во вьюпорте, включаем в
редакторе материалов Show Map in View Port.
- Для рисования непосредственно на 3D-геометрии во вьюпорте выделяем в разделе
Live Edit редактора материалов радиокнопку Paint. Во вьюпорте 3DS Max текущий
курсор меняет вид на изображение карандаша.
- По окончании создания новой карты, сохраняем проект Discreet Paint (формат
*.iip).
- Для последующего использования существующего проекта Discreet Paint (*.iip)
как карты материала в 3DS Max выбераем карту Paint в Map Browser. В свитке
Parameters нажимаем кнопку Рrojeсt, в появившемся окне Open Projeсt выбираем
нужный файл *.iip. Проект Рaint загружается после этого в слот редактора материалов.
Для редактирования существующего проекта нажимаем кнопку Edit в разделе Parameters.
Туториал Diskreet Paint*
Рассмотрим простой пример – нам нужно создать материал, имитирующий трещины,
разбегающиеся по стене сверху вниз. Для получения этого эффекта нужно создать
смешанный материал (Blend), в котором сквозь анимированную маску будет виден
материал трещин. И сделаем мы это с помощью Paint*.
- Описанной выше процедурой создаем новый анимированный материал, синхронизируя
частоту кадров и длительность проекта Paint* c частотой кадров и длительностью
события в 3D-редакторе.
- Выбрав в панели Filmstrip первый кадр, рисуем белой кистью по черному фону
картину из сети трещин (заметьте, что черный цвет обозначает зону непрозрачности,
белый – зону прозрачности) (рис.3).
Создаем черный прямоугольный плавающий слой, выбрав на панели инструментов
filled rectangle и черный цвет в качестве основного. Полностью закрываем этим
прямоугольником подготовленное изображение трещин в первом кадре (рис.4).
В панели Timeline, выделяя правые треугольнички, растягиваем диапазоны наших
трещин и маскирующего прямоугольника до последнего кадра нашей будущей анимации.
- Анимируем движение маскирующего черного прямоугольника по оси Y. По мере
своего движения вниз он будет открывать наши трещины, создавая иллюзию их
движения сверху вниз. Для реализации этого эффекта в Timeline выделим позицию
filled rectangle и, щелкнув по черному треугольнику слева от названия, раскрываем
параметры, поддающиеся анимации. Нас интересует лишь параметр Y Position в
Transform. В Filmstrip выделяем последний кадр анимации. В Timeline при выделенном
параметре Y Position добавляем ключ анимации, щелкнув на радиокнопке Add.
Щелкнув два раза правой кнопкой мыши на появившемся новом ключе анимации в
появившемся окне Numerical Input, вводим новое значение в поле Y Position.
Поэкспериментируйте со значением, чтобы маскирующий прямоугольник полностью
открыл трещины (рис.5). После этого наша анимация готова к визуализации.
Визуализируем анимацию. В окне настроек рендеринга (File, Render) выставляем
формат и имя файла, запускаем просчет (рис 6). Анимацию можно сохранить в
множестве форматов. В 3D-редакторе визуализируем окончательный результат (рис.7).
Данный пример описывает лишь принцип анимирования текстуры в Discreet Paint*.
Очевидно, что для полного достижения эффекта лучше анимировать несколько маскирующих
фигур произвольной формы.
Deep Paint 3D
На текущий момент Deep Paint 3D имеет плагины для сопряжения с двумя программами
старшего семейства: Maya и 3DS Max. Плагин для Softimage, по словам разработчика,
находится в стадии создания. Отсутствие связывающих плагинов ничуть не мешает
в работе, так как Deep Paint 3D легко открывает файлы в формате *.obj и *.lwo.
Связывающие же плагины лишь делают работу более удобной и прозрачной.
Установка соединения с Maya
Если при первой установке Deep Paint 3D вы не инсталлировали плагины для Maya,
это не поздно сделать потом вручную. С дистрибутива Deep Paint 3D скопируйте
следующие файлы:
- deeppaint3d.mll в вашу директорию "Maya2.0.\bin\plug-ins";
- Deep Paint 3D.mel в вашу директорию "Maya2.0\scripts".
После этого запустите Maya. В главном меню Window войдите в General Editors,
затем в Plug-in Manager. В списке доступных плагинов выберите положения loaded
и auto load напротив имени плагина deeppaint3d.mll. Это приведет к тому, что
после каждой загрузки Maya будет готова к работе с Deep Paint 3D, а в главном
меню появится новый пункт Deep Paint 3D со следующими функциями:
- Switch To Deep Paint 3D;
- Export Selection;
- Import Bitmaps;
- Launch Deep Paint 3D;
- Close Deep Paint 3D.
Установка соединения с 3DS Max
Если при первой установке Deep Paint 3D вы не инсталлировали плагины для 3DS
Max, то для этого с дистрибутива Deep Paint 3D скопируйте следующие файлы:
deeppaint3d.dlo и Deep3D.dlu в вашу директорию "3DS Max 3.x\plugins\.
Задав текстурные координаты и назначив материал, стандартными средствами 3DS
Max в панели утилит находим Deep Paint 3D (если утилита не видна в списке, нажимаем
кнопку More и выбираем Deep Paint 3D). Не забудьте сделать активным нужный объект.
В открывающемся окне с симпатичной черепашкой нажимаем команду Paint!, что приводит
к вызову Deep Paint 3D.
Установка соединения с Softimage и Lightwave
Соединение с Softimage и Lightwave пока происходит без блока непосредственного
сопряжения. Готовый 3D-объект сохраняется в форматах *.obj (Softimage) и *.lwo
(Lightwave).
Процедуры Deep Paint 3D
Работа Maya с Deep Paint 3D сводится к следующим шагам:
- Загрузите объект в Maya.
- С помощью выборки по компонентам (Select by Components) выберите объект.
- В меню Deep Paint 3D войдите сначала в Launch Deep Paint 3D, что запускает
программу, затем в Export Selection для передачи выбранного объекта из Maya
в Deep Paint 3D.
- Закончив текстурирование в Deep Paint 3D, используйте Import Bitmaps или
Save All Maps для возвращения всех карт в Maya для продолжения работы.
- Не забудьте, что Deep Paint 3D может рисовать только на полигональных моделях.
Если ваш объект NURBS-поверхность, преобразуйте его в полигоны с помощью NURBS
to Polygons в меню Edit Surfaces. Очевидно, что модель должна быть полностью
закончена.
Подробнее рассмотрим процесс текстурирования в Deep Paint 3D на примере работы
с 3DS Max, так как сопряжение с ним наиболее прозрачно и показательно, а технология
нанесения текстур универсальна.
После импорта геометрии в Deep Paint 3D пользователь имеет возможность рисовать
на пяти каналах материалов: cl:Color, bm:Bump, si:Self Illumination, op:Opacity,
sh:Shininess. Если на этих каналах уже находились карты, то при импорте в Deep
Paint 3D из материнской программы они будут подогнаны по размеру под карту,
находящуюся на первом канале, т.е. на канале Color. Предупреждения об этом Deep
Paint 3D не дает, поэтому это нужно запомнить. Если материал не имел карт на
каналах, то открыв панель каналов (справа) и щелкнув по символу канала (они
обозначаются первыми буквами названия канала, заключенными в квадратную рамку),
можно назначить каналу определенный цвет, можно присвоить карту или не назначить
ничего. Также следует помнить, что протокольные карты (Noise и т.д.) проигнорируются
Deep Paint 3D, как и одинаково названные карты в составе субматериала. Этого
можно избежать, давая каждой карте уникальные имена, несмотря на то что в них
используется одно и то же растровое изображение.
Описывать подробно сам процесс текстурирования мы не будем, так как оперировать
приходится привычными инструментами рисования, выделения, фильтрации, известными
пользователю по 2D-редакторам – Photoshop, Fractal Design Painter и т.д. Напомним
лишь, что из-за отсутствия инструмента Lasso в Photoshop выделение сложных областей
(отличных от круга или прямоугольника) производится с помощью маски, которая
рисуется кистью, корректируется с помощью ластика, а потом зона маскирования
обращается в выделение. Рисование текстурой производится после выбора из списка
инструментов Texturing Tools.
Интересно, что при прямой переправке материала для дополнительной обработки
в Photoshop каждый канал представляется отдельным, причем самым верхним слоем
будет сетчатая развертка геометрии, что очень облегчает редактирование.
Специфичные моменты в технике текстурирования проиллюстрирует небольшой урок,
приведенный ниже.
Туториал
Допустим, нужно нанести макияж на лицо виртуального персонажа. Сделать это
стандартными средствами было бы затруднительно, поэтому обратимся к помощи Deep
Paint 3D. Назначив текстурные координаты (в нашем случае лучше всего подойдут
сферические), перейдем в редактор материалов и подберем простые материалы составным
частям модели – лицу, бровям, губам. В панели утилит входим в Deep Paint 3D
и нажимаем Paint! (рис.8). В открывшемся окне Material Import выбираем названия
объекта и материалов. После этого модель готова к рисованию.
На панели инструментов в левом верхнем углу выбираем кисть и начинаем рисовать.
Но при попытке нанесения текстуры вместо нее мы видим лишь пунктирную линию.
Это происходит потому, что в Command Panel (справа) мы не сделали важных настроек
– не указали, на каком канале какого материала мы хотим рисовать. Итак, на закладке
Elements выбираем объект, материал и канал для рисования. Нам нужен канал Color.
Щелкнув в ячейке под буквой C, создам новый канал (рис.9). Теперь мы готовы
к рисованию на нем.
Варьируя толщину и нажим кисти на панели Bruch & Paint Settings, рисуем
макияж на модели (рис. 10). Также нарисуем тонкие морщинки - кисть 3х3 (тут
главное не перестараться – девушка то у нас молоденькая), предварительно создав
новый канал Bump уже известным вам методом. Взяв инструмент Text, можно легко
печатать прямо на модели. Закончив, можем сохранить карты для последующего назначения,
но есть способ более удобный. В меню File выбираем Export и сразу отсылаем карты
в 3D-приложение. В примере с 3DS Max материал обновляется «на лету», если в
опциях экспорта выставить Overwrite Old Maps. Результат окончательного рендеринга
представлен на рис. 11.
Резюме
Применение каждой из программ обусловлено вышерассмотренными функциональными
возможностями. Deep Paint 3D является незаменимым инструментом для текстурирования
объектов со статичными (не анимированными) материалами, в то время как Paint*
дает непревзойденные возможности в анимации сложных материалов. При этом Paint*,
не имея достаточного инструментария для интерактивного нанесения растровых изображений,
лучше использовать в качестве инструмента для создания анимированных масок в
эффектных материалах. Короче говоря, там, где нужно статичное фотореалистичecкое
изображение, – незаменимый инструмент Deep Paint 3D, а там, где речь идет о
создании видеоэффектов, – добро пожаловать в Discreet Paint*.
|
|