Вход в систему

Логин:
Пароль:
Вход Зарегистрироваться Вспомнить   пароль

Новейшие статьи

Мастерская
Все статьи
Популярные за месяц
The Darkness 2
PCX360PS3
Комментариев: 6
Kingdoms of Amalur: Reckoning
PCPS3X360
Комментариев: 30
The Binding of Isaac
PC
Комментариев: 22
Battlefield 3
PCPS3X360
Комментариев: 131
Мороз по коже. Тестирование процессорного кулера Cooler Master «Дед Мороз»
PC
Комментариев: 20
Carrier Command: Gaea Mission
PC
Комментариев: 9
Ace Combat: Assault Horizon
PS3X360
Комментариев: 38
BlizzCon 2011. День второй
PC
Комментариев: 40
BlizzCon 2011. День первый
PC
Комментариев: 43
Might and Magic: Heroes 6
PC
Комментариев: 145
Might and Magic: Heroes 6
PC
Комментариев: 145
Rage
PCX360PS3
Комментариев: 144
Battlefield 3
PCPS3X360
Комментариев: 131
Hard Reset
PC
Комментариев: 71
Red Orchestra 2: Heroes of Stalingrad
PC
Комментариев: 67
BlizzCon 2011. День первый
PC
Комментариев: 43
BlizzCon 2011. День второй
PC
Комментариев: 40
Ace Combat: Assault Horizon
PS3X360
Комментариев: 38
Ghost Recon: Future Soldier
PCPS3X360
Комментариев: 36
Dilogus: The Wings of War
PC
Комментариев: 32


ЛКИ
№10/2011

www.lki.ru

Мир фантастики
№12/2011

www.mirf.ru

Mobi.ru
экспертный сайт о цифровой технике

www.Mobi.ru

Информация на данной странице предоставлена нашим информационным партнером Игромания.ру

Пространственное моделирование. Нестандартный подход к работе в 3D Studio MAX. Часть 4

Автор: | Дата: 01.03.2004

   В предыдущих трех статьях цикла (см. рубрику "ИнфоБлок" нашего компакта) мы изучили нестандартный, но достаточно простой для начинающих разработчиков игр способ создания игровых моделей в редакторе 3D Max.
- Новые опции, добавившиеся после установки плагина
Слепленный нами из пластилина макет головы был разрезан на тонкие ломтики, которые затем были оцифрованы в "Максе" и полностью подготовлены для наложения текстур. Текстурирование объемных моделей — это отдельный и чуть ли не самый сложный этап моделирования. Его мы сегодня и разберем.
   
   Наложение текстуры

   Для дальнейшей работы нам потребуется дополнительный модуль к 3D Max —
Texporter от турецкого программиста Cuneyt Ozdas, который можно совершенно бесплатно скачать по адресу www.cuneytozdas.com/software/max/texporter/index.htm или взять с нашего компакта.
- Команда Convert To: / Convert to Editable Mesh
   
   Модуль позволяет получить картинку проекционных координат выделенных полигонов. Используя затем этот рисунок как шаблон, можно создавать изображение текстуры данной части модели. Установка модуля очень проста. Нужно скопировать содержимое папок модуля в одноименные папки 3D Max.
Установив сам плагин, нужно подключить справку к нему. Гораздо удобнее иметь ее под рукой и запускать из самого 3D Max. После того, как вы скопировали справку в папку Help, в файл plugin.ini в разделе [Help] нужно внести строчку следующего формата: название_справки=путь_до_файла_справки (у меня было Texporter=C:\3dsmax4\Help\texporter.chm). Чтобы запустить справку, необходимо зайти в меню Help/Additional Help и выбрать ее из списка.    
   Модуль Texporter располагается в разделе Utilities палитры инструментов. Чтобы найти модуль, нужно нажать кнопку More и поискать в списке доступных утилит. Удобства ради можно назначить Texporter на отдельную кнопку
. Для этого достаточно нажать кнопку Configure Button Sets, найти в списке Texporter и перетащить его название из окна списка на любую кнопку справа. Старое название кнопки будет заменено на Texporter, и вы сможете запускать утилиту, используя эту кнопку.
- Результат действия команды Pick Object
   
   Чтобы воспользоваться модулем, придется преобразовать объект в тип Editable Mesh (Редактируемая сетка). После этой операции вернуться к сплайнам будет затруднительно, поэтому сохраните сначала объект в новом файле или работайте с копией. Итак, приступим к текстурированию.

   Выделяем голову модели, щелкаем по ней правой кнопкой мыши и выбираем из всплывающего меню команду Convert To: / Convert to Editable Mesh.
   Прежде чем использовать материалы, включающие в себя битовые карты, нужно получить координаты UVW.
Для этого используем модификатор UVW Mapping. Этот модификатор позволяет получить проекции отображения координат на поверхность объекта нескольких типов.
- Пропущенные полигоны хорошо заметны
Если предполагается использовать модель в статической картинке или в неинтерактивном видео, то лучше применить цилиндрическое проецирование. Порядок действий следующий. Выделяем объект, в стек модификаторов (вкладка Modify) добавляем UVW Map из списка доступных модификаторов.    
   В параметрах модификатора выбираем тип проецирования Cylindrical. В группе Alignment отмечаем ось таким образом, чтобы верхнее и нижнее основания цилиндра совпадали с верхней и нижней частью головы (в моем случае это ось Х), и щелкаем по кнопке Fit
.
Теперь цилиндр (гизмо модификатора) охватывает объект полностью.   
   Переходим ко вкладке Utilities палитры инструментов.
Запускаем Texporter (нажав на кнопку, если вы ее создали, либо выбрав плагин из списка доступных утилит). Настройки модуля можно оставить заданными по умолчанию (лучше сбросить флажок Mark Overlaps, отмечающий красным цветом скрытые поверхности). Чтобы начать процесс создания битмапа, нажимаем на кнопку Pick Object и щелкаем по интересующему нас объекту. Если все сделано правильно, то на экране появится индикатор, отображающий процесс преобразования. Если вы что-то сделали не так, то появится предупреждение. Проверьте в первую очередь, что в окошке Map Channel стоит номер канала, принятый в параметрах гизмо UVW Mapping. Должно получиться что-то вроде изображенного на рисунке.   
- Цилиндрическое проецирование
 
 
- Правильно закрашенные полигоны
 
 
- На рисунке гизмо прямоугольной проекции выглядит как желто-зеленый прямоугольник
   Теперь можно красить заготовку.
- Планарное проецирование
К сожалению, цилиндрическое проецирование подходит только для статических моделей. Например, если вы хотите создать монстра для заставки в пошаговой стратегии. Если же модель нужна для динамичного экшена, то необходимо использовать планарное проецирование.
   При планарном проецировании гизмо имеет прямоугольную форму и точно соответствует размерам битовой карты. Такая форма проекции дает наименьшее искажение полигонов, которые расположены параллельно гизмо. Все другие будут в большей или меньшей
степени (в зависимости от угла наклона к плоскости гизмо) искажены.
При использовании планарного проецирования необходимо разбивать объект на отдельные участки и для каждого из них использовать свою собственную проекцию.    
   Начинаем с лицевой части.
Переходим на уровень подобъекта Polygon и выделяем один за другим (щелкая по ним левой кнопкой при нажатой клавише Ctrl) полигоны, которые составляют на лице модели ровную поверхность. В группе Material заменяем ID номер материала на другой. Например, на "2". Чтобы убедиться, что ничего не пропустили, вызываете Material Editor (клавиша M) и, выбрав любой однотонный материал, назначаете его выделенным полигонам (кнопка Assign Material to Selection в Material Editor). Пропущенные полигоны станут хорошо заметны.    
   Выделяем пропущенные полигоны и меняем их ID номер.
После доработки выбранная область должна быть абсолютно однотонной.
   Может возникнуть вопрос — на рисунке явно видны области, на которых полигоны расположены почти под прямым углом (например, в области глазниц). Значит, в этом месте будет значительное искажение накладываемой текстуры.
Это вполне допустимо. Можно поступить иначе и исключить эти области из создаваемой карты. Рассматривать их как отдельные и делать для них свои собственные карты проецирования. Тогда искажения будут минимальны. Но в данном случае, что называется, игра не стоит свеч. К глазницам игровых персонажей геймеры обычно не присматриваются.  
   Перед тем как применить модификатор UVW Mapping, необходимо выделить область, к которой мы собираемся его применять. Назначив лицевой области собственный ID номер материала, это легко сделать с помощью кнопки Select By ID (Modify/Editable Mesh/Polygon/Surface Properties, группа Material). В появившемся диалоговом окне Select By Material ID введите номер присвоенного области ID (в моем случае "2"). Все полигоны с таким материалом будут выделены. В списке доступных модификаторов выбираем UVW
Mapping. Выбираем тип подобъекта — Gizmo.
В плавающей панели Parameters отмечаем тип проецирования — Planar.
- Выбор номера канала
- Размер текстуры 800x400
- Карта текстур
 
   Поскольку это первая карта объекта, то оставляем номер канала "1".
   В группе Alignment отмечаем плоскость гизмо таким образом, чтобы она "смотрела" на выделенную область. Нажимаем кнопку Fit, что приведет размеры прямоугольника гизмо в соответствие с размерами лицевой части модели.
   Настало время прибегнуть к модулю Texporter.
Запускайте его. Настраивать его будем несколько по-иному. Первая проблема заключается в том, что неясно, какой размер вводить в поле Image Size. Размер вводится в пикселях, поэтому заданный по умолчанию 800х400 нас сейчас не устраивает. Модификатор UVW Mapping используется, когда известен точный размер битовой карты. Мы поступим наоборот, используем его для того, чтобы битовую карту получить. Определять размер битовой карты придется экспериментально, руководствуясь пропорциями (примерным отношением длины и ширины) гизмо UVW Mapping и необходимой детальностью текстуры в области проецирования.    

   Исходя из этих соображений, я установил размер карты в 512х420. В следующей группе, UVW Channel, должен быть установлен тот канал карты, который вы определили для модификатора UVW Mapping. В моем случае здесь прописано "1".
   Если вы
перепутаете канал, то, попытавшись получить с помощью Texporter визуальное отображение карты, получите предупреждение о том, что ее не существует. Вернитесь во вкладку Modify и проверьте соответствие номера канала карты.   
   В группе Display отмечаем только Ploygon Fill (это опечатка разработчика модуля), Edges/Edges Only, Only Selected и Backface Cull. В группе Colorize bySmooth Colors и Constant.
   Когда последние приготовления закончены, нажимаем кнопку Pick Object и щелкаем левой кнопкой мыши на области отображения. После обработки на экран будет выведена карта проекции.
   На карте могут быть
дыры. Они образованы полигонами, имеющими другой номер ID материала. Однако если вы вернетесь во вкладку Modify и попытаетесь найти там этот номер, вас ждет разочарование. На модели полигон имеет правильный ID номер. Искать "нарушителя" нужно на противоположной стороне модели! Карта зеркально перевернута по горизонтали.   
   Полученное изображение сохраняем. Формат файла значения не имеет. Сцену в 3D Max тоже сохраняем в новый файл. Если вы вернетесь сейчас во вкладку Modify и что-нибудь там измените, то координаты проецирования могут быть утеряны.
Полученный рисунок уже не будет отображать карту UVW Mapping, и все придется переделывать.
- Карта проекции
 
 
- Правильно затекстурированная лицевая часть головы
   Битовая карта
   Рассмотрим основные моменты рисования текстур. Получив плоскую карту и сохранив ее как Planar1.tga, загружаем ее в Adobe Photoshop (я пользовался версией 5.5). Нужно, чтобы полученная карта была представлена в Adobe Photoshop как один из слоев, а не фоном (Background), как в Planar1.tga. Выделяете на фоне с помощью инструмента Polygonal Lasso Tool карту, копируете ее в новый слой, на фоновом слое закрашиваете оригинал.
   Основной рисунок текстуры можно нарисовать вручную, сфотографировать или взять из библиотеки бесплатных текстур. Я нашел подходящую текстуру
металлического листа форматом 756х512х16 и поместил его в файл карты в качестве нового слоя.    
   Меняем порядок следования слоев таким образом, чтобы новый слой находился ниже слоя с картой.
- Неверно закрашенный полигон нужно искать на противоположной стороне модели
Выделяем слой с картой, щелкаем по стрелочке в поле Opacity окна Layers. С помощью ползунка меняем уровень непрозрачности таким образом, чтобы под картой легко просматривался вставленный слой с текстурой. "Протаскивая" под картой текстуру, ищем наиболее удачный рисунок. Затем, используя слой с картой как шаблон, вырезаем из слоя текстуры кусочек. Можно делать это не слишком точно. Лучше, если вырезанная текстура будет чуть больше карты.
   Нарисовав текстуру для лицевой части, сохраняем
ее, используя команду меню File/Save a Copy, как файл формата .tga с 16-битным цветом.
   

   Маски-шоу

   Наложим полученную текстуру на модель. Возвращаемся в 3D Max, загружаем сохраненную ранее сцену и вызываем редактор материалов, нажав на панели инструментов кнопку Material Editor (М). Щелчком мыши выбираем одну из ячеек Material Editor, называем как-нибудь новый материал (например, Lic_1), выбираем модель раскраски в списке Shading свитка Shader Basic Parameters (я выбрал Metal) и раскрываем пункт Maps.
   Ставим
флажок напротив параметра Diffuse Color и щелкаем по кнопке None (справа). В появившемся диалоговом окне Material/Map Browser выбираем тип карты замещения этого параметра — Bitmap. Diffuse Color определяет основной цвет материала.   
   Вам будет предложено выбрать файл карты текстуры.
Выбираем сохраненную карту. Вид материала в ячейке редактора изменится соответствующим образом. В свитке параметров растровой карты Coordinates устанавливаем номер канала MapChannel, который определили для UVW Mapping.
- В Material/Map Browser выбираем Bitmap
- Выбор номера канала
 
   Назначаем материал (с картой текстуры) выделенной области. Для этого нажимаем кнопку Assign Material to Selection. Чтобы увидеть изменения, нужно в окне модификаторов установить Editable Mesh/Polygon, перейти к UVW Mapping/Gizmo и в редакторе материалов щелкнуть по кнопке Show Map in Viewport.  
   Развернув модель так, чтобы видеть результат наложения текстуры, выполняем пробную визуализацию (Rendering/Render...).
   Если результат устраивает, сохраняем сцену.
- Material Editor
Фиксируем результат, для чего переходим во вкладку Modify, щелкаем правой кнопкой мыши на модификаторе UVW Mapping и из всплывающего меню выбираем команду Collapse to. На предупреждение о сложности возврата к прежнему состоянию сцены отвечаем утвердительно.
   Переходим к
следующему участку.
Опять выделяем часть модели и применяем к ней модификатор UVW Mapping.    
   Назначаем новый номер ID материала и Map Channel (в группе Material из Modify/Editable Mesh/Polygon/Surface Properties), отличные от установленных для лица.
Везде, где будет встречаться значение Map Channel, нужно устанавливать новое значение.
   Осталось только повторить все описанные операции для оставшихся частей модели.


   Нюансы

   Далеко не всегда нужно использовать для растровой карты проекционную картинку.
Если выделенный участок малозначительный, можно обойтись текстурой прямоугольной формы. Материал с такой текстурой назначается выделенному участку, после чего ее можно двигать (Select and Move), разворачивать (Select and Rotate) и трансформировать (Select and Manipulate), используя гизмо UVW Mapping.   
   Помимо карты диффузного отражения, часто используется карта рельефа (Bump). В качестве нее можно брать тот же файл текстуры, что и для Diffuse. Это улучшает внешний вид объекта.
   Также разрешено использовать многокомпонентный материал и включать в него другие материалы, используемые в различных частях сложного объекта.
   * * *

   Мы проделали огромную работу. Работу, которой может позавидовать и профессионал.
Мы создали настоящий — не виртуальный — макет головы. Мы сделали станок для нарезания слоев (станок можно использовать для нарезания любых заготовок), с помощью которого распилили макет на пласты. Пласты мы оцифровали в 3D Max, получив продольные сплайны. Мы сшили сплайны в объемную заготовку и затекстурировали полученный каркас. Перед нами — законченная модель головы.
- Пробная визуализация
 
- Наложение материала с картой текстуры
- Боковая проекция гизмо
 
   Но нельзя объять необъятное. Методов моделирования очень много. Какой из них лучший, каждый определяет для себя сам. Мы рассмотрели лишь наиболее подходящий для начинающих способ. Главное — терпение и труд, ибо они, как известно, все перетрут.
Двери тут