$xBasepath = "../../../"; $xDir = "max"; $xTitle="MAX"; include "../../head.inc"; ?>
Проецирование материалов и текстур для игр. (2) 1 2 3 4 5 6 |
Назначение идентификационных номеров материалов в сравнении с их применением на уровне подобъектов
Применять текстуры в моделях с малым числом многоугольников проще и в то же время сложнее, чем в традиционных моделях с большим числом многоугольников. Проще, потому что сцены в данном случае получаются намного менее сложными, а значит, более простыми должны быть применяемые материалы и текстуры. А сложнее, потому что недостатки упрощенной геометрической формы приходится восполнять за счет материалов, причем любой допущенный промах в работе может испортить всю сцену.
Художнику приходится призывать на помощь все свое умение и опыт в процессе манипулирования геометрической формой, подбора цветов и выбора методов проецирования материалов, чтобы добиться оптимальной сцены, которая сочетает в себе минимум использованных ресурсов и максимальный визуальный эффект. Конечной целью должна служить оптимизация, ибо самая красивая сцена может быть забракована, если она способна исчерпать возможности игровой платформы или игрового приложения.
Во избежание больших осложнений художники должны непременно работать в тесном
контакте с программистами. Это обстоятельство трудно переоценить, ибо если текстуры
окажутся неработоспособными на целевой платформе, их придется полностью переделать.
Создание текстур, определение мест их размещения на моделях представляет собой
многократно повторяющийся процесс, который требует постоянного визуального контроля.
В процессе работы над большим проектом одни художники создают модель, а другие занимаются ее текстурированием. Поэтому прежде чем приступать к работе над моделью, необходимо проверить, насколько полно она оптимизирована, не содержит ли открытых ребер или лишних вершин и правильно ли назначены для нее группы сглаживания и идентификационные номера материалов. Без этой предварительной проверки допущенные ранее ошибки усугубятся еще большими ошибками, которые могут обойтись недешево.
Совет
В простейшем случае для проверки ошибок применяется модификатор STL Check, выбираемый в категории Mesh Editing (Редактирование каркаса) из списка доступных модификаторов. Даже если файл сцены не предназначен для стереолитографии, модификатор STL Check уведомляет об имеющихся в модели дефектах. В частности, он проверяет наличие ошибок, связанных с лишними вершинами, Т-образными сочленениями, несоединенными и открытыми ребрами. Получив от модификатора STL Check сведения о состоянии модели, можно затем удалить его или свернуть стек.
Сложное текстурирование объектов, необходимое для игровых/интерактивных приложений, выполняется в следующие три этапа:
1. Назначение идентификационных номеров материалов. Этим 3ds max 4 уведомляется о предполагаемых местах размещения различных материалов.
2. Создание материалов, применяемых на уровне подобъектов. При этом указываются различные материалы для разных участков модели.
3. Применение пропорциональных координат проецирования к объектам. Благодаря этому гарантируется правильное расположение и ориентация растров на объектах.
Несмотря на то, что в условиях производства вышеупомянутые этапы могут чередоваться в разной последовательности, в этой главе они для ясности излагаются систематически.
Назначение идентификационных номеров материалов
Вероятно, читатель уже знаком со следующим стандартным методом назначения материалов для объектов: выделение объектов в видовых окнах, выбор материала в редакторе материалов, а затем кнопки Assign Material to Selection (Назначить материал для выделенных объектов). Стоит проигнорировать этот метод, и тогда окажется, что для одного и того же объекта назначено несколько материалов.
Перемещение между панелями подобъектов
Откройте сцену из файла cube.max, находящегося на сопровождающем эту книгу CD-ROM. Эта сцена состоит из простого куба, окрашенного красным, зеленым и синим цветами (рис. 18.1). Данный объект представляет собой редактируемый каркас с выделенными многоугольниками, для которых разные цвета назначены в виде материалов, применяемых на уровне подобъектов.
Рисунок 18.1. Здесь показан куб в виде редактируемого
каркаса, к которому применены текстуры на уровне подобъектов
В свитке Selection находится панель Modify с пиктограммами пяти различных типов подобъектов: вершин, ребер, граней, многоугольников и элементов (рис. 18.2).
Примечание
Более подробно работа на уровне подобъектов рассматривается в главе 8.
Рисунок 18.2. Здесь показана
выделенная пиктограмма подобъекта многоугольника
Если выбрать пиктограмму многоугольника, а затем развернуть свиток Surface Properties, в нем обращает на себя внимание область Material. Если же щелкнуть на красном многоугольнике, окажется, что для него назначен материал с идентификационным номером 1 (Material ID1) и группа сглаживания 3 (Smoothing Group 3) (рис. 18.3).
Рисунок 18.3. Выделение красного
многоугольника показывает, что для него назначен материал с идентификационным
номером 1
При выполнении щелчка на пиктограмме грани или элемента вид свитка Surface
Properties не изменяется. Здесь может быть решена первая часть задачи назначения
идентификационных номеров материалов на уровне грани, многоугольника или элемента.
Вторая часть этой задачи решается в редакторе материалов. При открытии редактора
материалов в нем обнаруживаются уже назначенные четыре материала (рис. 18.4).
Крайним слева является составной материал типа Multi/Sub-Object, а три других определяют окраску куба разным цветом. На самом деле, для куба назначен материал Multi/Sub-Object, а красный, зеленый и синий материалы являются экземплярами соответствующих подматериалов, входящих в состав материала Multi/Sub-Object. Наличие экземпляров этих подматериалов отнюдь не обязательно, поскольку для их редактирования достаточно щелкнуть на соответствующей кнопке в свитке Basic Parameters.
Обратите внимание на то, что у сферического образца красного материала имеется идентификационный номер 1. Это подтверждает тот факт, что назначенный для куба материал с идентификационным номером 1 соответствует подматериалу куба с тем же самым номером в материале Multi/Sub-Object.
Рисунок 18.4. Вид редактора материалов с четырьмя материалами,
назначенными для куба
Объединение граней в логические группы
Если щелкнуть на пиктограмме грани, находящейся на панели Modify, а затем выделить зеленый многоугольник, обнаружится, что он содержит две грани с назначенным для них идентификационным номером 3 материала. Общее для этих граней ребро оказывается невидимым и показано пунктирной линией на рис. 18.5.
Рисунок 18.5. Здесь показано
пунктирной линией общее для обеих зеленых граней ребро
Определение видимых и невидимых ребер оказывается в большинстве случаев удобным способом анализа конструкции моделей и разделения их на легкодоступные для понимания группы. Однако в игровых механизмах для выполнения расчетов вместо традиционных для 3ds max 4 трехсторонних многоугольников применяются квадраты. Поэтому во избежание впоследствии всяческих недоразумений следует непременно обсудить этот вопрос с программистами, прежде чем видоизменять любые ребра.
В связи с тем что выполнение художественных работ для игровых/интерактивных приложений представляет собой многократно повторяющийся процесс, рекомендуется создавать модели как можно более компактными и аккуратными, поскольку в дальнейшем, скорее всего, придется вносить в них изменения. Ведь выделить щелчком один многоугольник намного проще, чем несколько граней. Такие многоугольники могут быть объединены под одним идентификационным номером материала, а затем выделены в диалоговом окне Select By ID (Выделение по идентификационному номеру материала), вызываемом с помощью одноименной кнопки в свитке Surface Properties.
Применение групп сглаживания
Еще одним инструментом из арсенала средств текстурирования являются группы сглаживания, которые упрощают определение смежных областей каркаса и ввод визуальных швов для разделения модели на отдельные присоединяемые элементы. Кроме того, группы сглаживания позволяют создать иллюзию дополнительной геометрической формы.
Как следует из рис. 18.6, благоразумное применение групп сглаживания позволяет сформировать очертания различных частей модели морскоймины. В условиях, когда каждый многоугольник на счету, благодаря сглаживанию можно превратить плотную модель в аморфную массу. Кроме того, с помощью групп сглаживания можно обеспечить затенение отдельных участков текстур с намного более крупным повторяющимся рисунком. При этом не следует забывать, что текстуры должны загружаться в игровой механизм так же быстро, как и модель.
Рисунок 18.6. Здесь показаны отличия во внешнем
виде модели морской мины, которых можно добиться, применяя группы сглаживания
Группы сглаживания назначаются на уровне граней, многоугольников или элементов. Для этого следует выделить соответствующую геометрическую форму, а затем щелкнуть на одной из пронумерованных кнопок в области Smoothing Groups (Группы сглаживания), расположенной в свитке Surface Properties. На рис. 18.7 показан основной корпус мины с назначенной группой сглаживания 1. Для одних и тех же граней может быть назначено несколько групп сглаживания, что позволяет выборочно формировать складки на определенных участках каркаса.
Примером использования нескольких групп сглаживания может служить нос персонажа. В данном случае ноздри должны быть сглажены вместе с носом, а тот - с остальной частью лица персонажа. С другой стороны, в месте пересечения ноздрей и остальной части лица должны быть складки. Если назначить для лица группу сглаживания 1, а для ноздрей - группу сглаживания 2, нос должен входить в обе группы.
Рисунок 18.7. Здесь показана выделенная группа сглаживания
1
Упражнение 18.1. Назначение идентификационных номеров материалов и групп сглаживания в простой модели комнаты
В этом упражнении предстоит назначить идентификационные номера материалов и группы сглаживания в простой модели комнаты.
1. Откройте файл сцены room01.max, находящийся на сопровождающем эту книгу CD-ROM (рис. 18.8).
Рисунок 18.8. Вид комнаты в начале
данного упражнения. Ее дверь и стена требуют доработки
Часть комнаты, с которой придется иметь дело в данном упражнении, представляет собой переднюю сторону параллелепипеда. Как видно, разработчик этой модели уже перевернул грани, однако ее дверь и стена требуют доработки.
2. Щелкните правой кнопкой мыши на заголовке окна пользовательского вида и выберите из появляющегося меню пункт Edged Faces (Окаймленные грани), как показано на рис. 18.9. Режим Edged Faces весьма удобен для редактирования граней. Тем не менее, его следует применять осмотрительно, ибо если не проверить полученный результат при отключенном режиме Edged Faces, это не позволит обнаружить возможные недостатки сглаживания.
Рисунок 18.9. Выбор режима Edged
Faces из меню, вызываемого щелчком правой кнопкой мыши на заголовке видового
окна
3. Выделите комнату и перейдите на уровень подобъектов многоугольников.
4. Установите флажок Ignore Backfacing (Пренебречь образованием невидимых граней). Благодаря этому не выделяются многоугольники, обращенные в сторону от наблюдателя.
5. Щелкните по очереди на многоугольниках стены с дверью. Обратите внимание на то, что в области Smoothing Groups свитка surface Properties для всех этих многоугольников назначена группа сглаживания 3.
Почему же стена с дверью имеет неверный вид, если для всей этой стены назначена одна и та же группа сглаживания? Потому что к этой же группе принадлежит и стена с проходом.
6. Выделите все многоугольники в стене с дверью, щелкнув на каждом из них и одновременно удерживая нажатой клавишу Ctrl, а затем щелкните на кнопке с номером 9 группы сглаживания в свиткеSurface Properties.
7. Щелкните на кнопке с номером 3 группы сглаживания, чтобы отключить эту группу. Как показано на рис. 18.10, стена выглядит сглаженной.
Рисунок 18.10. Вид правильно сглаженной стены с дверью
8. Измените на 4 идентификационный номер материала, назначенного для многоугольников стены с дверью.
9. Выделите боковую стену и измените на 2 идентификационный номер ее материала.
10. Настройте вид с помощью команд Arc Rotate (Повернуть) и Pan (Панорамировать), чтобы можно было видеть другую боковую стену, а также переднюю стену с окном.
11. Назначьте для боковой стены идентификационный номер 2, а для передней стены - идентификационный номер 3 материала, выделив сначала подходящие многоугольники, а затем установив соответствующий идентификационный номер материала.
12. Выйдите из режима Sub-Object, щелкнув на элементе Editable Mesh стека модификаторов либо нажав комбинацию клавиш Ctrl+B.
13. Откройте редактор материалов. Назначьте материал controlRoom, находящийся на первой позиции.
Теперь комната должна выглядеть так, как показано на рис. 18.11, причем на каждой стене применяется другая текстура. Если полученный результат не соответствует данному рисунку, откройте файл сцены room02.max, находящийся на сопровождающем эту книгу CD-ROM, чтобы увидеть правильное назначение идентификационных номеров материалов. В назначаемых идентификационных номерах материалов можно легко запутаться, поэтому старайтесь правильно выделять многоугольники, прежде чем назначать для них идентификационный номер материала.
Рисунок 18.11. Вид комнаты со
всеми назначенными идентификационными номерами материалов
В предыдущем упражнении был назначен специально созданный материал Multi/Sub-Object. Для его создания достаточно выбрать первую свободную позицию образца материала и щелкнуть на кнопке New, как показано на рис. 18.12.
Большая часть возможностей редактора материалов расходуется впустую при создании и настройке материалов для приложений реального времени. Как упоминалось выше, чрезвычайно важно обсудить с группой программистов все аспекты применения модели в целевом приложении или на игровой платформе перед тем, как приступать к ее текстурированию. Компьютеры не прощают ошибок, допущенных в модели. Они просто отвергают модель, если не могут ее обработать и воспроизвести.
Рисунок 18.12. Создание нового материала в браузере
материалов и карт с помощью кнопки New
Учет ограничений, накладываемых целевой платформой
Многие игровые механизмы требуют, чтобы растры были только определенного типа (обычно в формате Targa), а их размеры должны быть кратны степени 2, т.е. 256х256, 128х128 и т.д. В некоторых старых игровых механизмах требуется, чтобы карты были квадратными.
Среди художников широко распространен старый формат 3DS экспортирования файлов, существующий еще со времен версии 3D Studio DOS. Одним из недостатков этого формата является усечение длинных имен файлов в соответствии с принятым в DOS форматом 8.3. При этом пользователи Windows 2000 должны следить за тем, чтобы имена их файлов были не длиннее 8 символов, не считая расширения файла. В противном случае после повторного экспортирования файлов формата 3DS придется переназначать текстуры. Кроме того, программистам необходимо будет вручную назначать имена текстур, что, безусловно, их не обрадует.
Совет
При сканировании исходного материала для текстур его практически невозможно
идеально расположить на планшете сканера. Поэтому после сканирования полученное
изображение приходится поворачивать в Photoshop для выравнивания его краев.
Это утомительное занятие может облегчить редко применяемый инструмент Measure
(Мерка). Итак, сосканируйте изображение любым удобным способом, а затем выберите
инструмент Measure (с пиктограммой измерительной линейки) из находящегося слева
набора инструментов, чтобы провести с его помощью строго вертикальную линию
вдоль выбранного элемента изображения или даже его края. Выберите команду Image/Rotate
Canvas/Arbitrary (Изображение/Повернуть холст/Случайно). В поле Angle (Угол)
появляющегося при этом окна должен быть указан конкретный угол поворота изображения.
Щелкните на кнопке OK. Изображение повернется идеально (рис. 18.13)! Проверьте
полученный результат с помощью рамки выделения, чтобы убедиться в том, что изображение
выровнено требуемым образом.
Рисунок 18.13. Применение инструмента Measure и команды
Rotate Canvas в Photoshop для выравнивания сосканированного изображения
Существуют два способа создания материала Multi/Sub-Object. Такой материал может быть создан с помощью кнопки Get Material (Получить материал). В этом случае кнопка Select By ID из свитка Surface Properties используется для определения мест размещения материалов на модели, а редактор материалов - для изменения идентификационных номеров этих материалов. Откровенно говоря, это не самый изящный способ!
Другой, более простой способ состоит в том, чтобы выделить грани и назначить стандартные материалы методом перетаскивания. В упражнении 18.2 показано, как это делается. В этом случае все операции по назначению материалов на уровне подобъектов берет на себя 3ds max 4, в том числе выбор идентификационных номеров материалов, создание материала Multi/Sub-Object и назначение его для объекта.
Упражнение 18.2. Простой способ применения материалов на уровне подобъектов
1. Откройте файл сцены cube01.max, находящийся на сопровождающем эту книгу CD-ROM.
2. Выделите куб и перейдите на уровень подобъектов многоугольников.
3. Откройте редактор материалов и расположите его окно таким образом, чтобы были видны куб и свитки инструментов.
4. Выделите верхнюю грань куба и перетащите на нее красный материал. При этом верхняя грань куба становится красной.
5. Назначьте зеленый материал для левой грани куба, сначала выделив эту грань, а затем перетащив на нее зеленый материал.
6. Повторите п. 5, назначив синий материал для правой грани куба (рис. 18.14).
7. Выберите свободную позицию образца материала в редакторе материалов и щелкните на кнопке Get Material, расположенной с левой стороны на панели инструментов редактора материалов.
8. Выберите кнопку-переключатель Scene в области Browse From (Источник для просмотра материала), а затем выберите тип материала в окне браузера материалов и карт.
Таким образом, получен и назначен для куба материал Multi/Sub-Object, состоящий из четырех подматериалов. Для граней невидимой части куба все еще назначен материал с идентификационным номером 1, поэтому они окрашены серым цветом. Результат выполнения данного упражнения приведен в файле cube02.max, который находится на сопровождающем эту книгу CD-ROM.
Рисунок 18.14. Назначение
материалов для куба путем выделения его граней и перетаскивания на них соответствующих
материалов
Несмотря на то что вышеописанный способ идеально подходит для применения материалов, они все же требуют дополнительного редактирования. Такой способ удобно применять в начале процесса текстурирования сложной модели с помощью множества материалов Multi/Sub-Object. Однако если по всей сцене используются многие копии одного и того же материала, возможны недоразумения, поскольку глобальные изменения при этом не допускаются. В связи с этим материалы рекомендуется применять согласованно.
Следует всегда помнить, что единственный способ использовать растр (или даже его часть) после загрузки в игровой механизм, состоит в том, чтобы освободить для него ресурсы, поскольку дополнительные машинные ресурсы для этого не выделяются.