Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3dsmax2009intro.pdf
Скачиваний:
151
Добавлен:
05.06.2015
Размер:
4.48 Mб
Скачать

Рис. 1.5. Проблема, связанная с несовпадением ориентации объекта и точки привязки (на примере модификатора Extrude)

Геометрические объекты

Так как для моделирования используются именно эти объекты, то стоит подробнее остановиться на рассмотрении их некоторых принципов и особенностей.

Принципы построения геометрических объектов в 3ds Max

Что нужно помнить, начиная моделировать в 3ds Max?

Прежде всего, в 3ds Max нет гладких кривых линий — есть ломаные, построенные из отрезков прямых. Нет гладких поверхностей — есть поверхности, построенные из треугольных плоскостей, граней, на жаргоне называемых "фейсами" (faces). На рис. 1.6 показаны окружности и сферы с различной степенью приближения, интерполяции. Несмотря на то, что средние и особенно правые объекты нельзя назвать ни окружностями, ни сферами, именно ими они и являются с точки зрения 3ds Max. На сферах видно, что 3ds Max пытается пр идать им сглаженность, и ему это удается, но все портят контуры.

Рис. 1.6. Зависимость вида объекта от интерполяции

Почему так? Дело в том, что пока вычислительных мощностей современных компьютеров не хватает для того, чтобы сделать "все как в жизни". Периодически делаются попытки уйти от треугольников, и некоторые весьма успешные (например, рендеринг без предварительной тесселяции реализован в Pixar PhotoRealistic RenderMan и в Realsoft3D), но для большинства задач соотношение время рендеринга/качество получается в пользу традиционных алгоритмов.

Для того чтобы на окончательном изображении окружность была окружностью, а сфера — сферой, вы должны позаботиться об этом заранее. Эти вопросы будут обсуждаться в практических примерах. Сейчас же стоит только подчеркнуть, что вы должны руководствоваться принципом "необходимости и достаточности". При создании видеоролика формата PAL и плаката формата A3 с разрешением 300 dpi, вполне возможно, вам придется использовать разные по сложности (с точки зрения интерполяции) модели, так как модели, неплохо смотрящиеся на видео, будут недостаточно сложны для полиграфии. И наоборот, прекрасно детализированные модели могут привести к тому, что видеоролик с их использованием вы не увидите никогда, так как время рендеринга будет очень большим.

Поверхности в 3ds Max (как, впрочем, и в любом другом пакете трехмерной графики) не обладают толщиной и имеют только одну сторону. Сделано это все с той же целью — оптимизировать время рендеринга. Это необычно, но к этому нужно привыкнуть и научиться этим пользоваться, так как преимуществ от этого обстоятельства больше, чем неудобств. Например, поверхность с обратной стороны прозрачна не только для взгляда, но и для света.

Стороны поверхности: видимая (Front) или обратная (Back) — определяются вектором, называемым нормалью к поверхности, или просто нормалью (Normal). Как следует из названия, она должна бы быть перпендикулярна

www.realtime. ru / 119501 Мос ква ул. Нежинская д.5 / тел.: (495) 4425966,4425977

9

поверхности. Но не всегда это так, для сглаженной поверхности нормаль в каждой точке поверхности рассчитывается с учетом этой сглаженности и перпендикулярна этой "виртуальной" поверхности (рис. 1.7). Кроме того, при помощи модификатора Edit Normals можно редактировать нормали к поверхности, создавая иллюзию криволинейности на геометрически совершенно плоской поверхности. Конечно, это уже экзотика, но, тем не менее, это возможно, и в моделях для игр этот прием используется весьма часто.

Замечание

Начиная с версии 9, объекты в 3ds Max по умолчанию отображаются в окнах проекции как двусторонние, при этом обратная сторона отображается черным цветом. Сделано это исключительно для удобства пользователей и ускорения отображения моделей в окназ проекции, при рендеринге все односторонние поверхности таковыми остаются.

Рис. 1.7. Реальные и виртуальные нормали к поверхности

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

Понятие материала в 3ds Max относится, как правило, только к реакции поверхности на освещение. Исключение составляют некоторые каналы, например, применение карты на канал Displacement (Смещение) приводит к созданию реального рельефа при рендеринге. Но все равно внутри объекта пусто, там нет ни гранита, ни дерева, ни стекла. И этим также можно пользоваться, например, если поместить источник света внутрь непрозрачного объекта, то вы получите имитацию освещения этим объектом.

Параметрические объекты

Как правило, моделирование в 3ds Max начинается с создания объекта, называемого параметрическим объектом, или примитивом. Правда, некоторые примитивы не так уж и примитивны, например, лестницы, окна и двери, поэтому их мы будем называть "параметрическими объектами".

В 3ds Max параметрических объектов достаточно много. На рис. 1.8 показаны некоторые из них. Объединяет их одно — все они описываются несколькими параметрами, и в них нет доступа к вершинам, сегментам или поверхностям. Например, для окружности есть всего один параметр — радиус.

www.realtime. ru / 119501 Мос ква ул. Нежинская д.5 / тел.: (495) 4425966,4425977 10

Рис. 1.8. Примеры параметрических объектов

Как правило, у каждого параметрического объекта есть параметр или несколько параметров, определяющих сложность объекта. Для сплайнов это параметры в свитке Interpolation (рис. 1.9, а), для объемных примитивов — количество сегментов, сторон и т. п. (рис. 1.9, б).

Рис. 1.9. Параметры, определяющие сложность объекта

Важно!

Следует взять за правило, что пока есть возможность задать размеры объекта при помощи параметров, нужно это делать. Избегайте масштабирования командой Scale параметрических объектов в целях достижения нужных размеров! Во-первых, вы не добьетесь точных размеров. А во-вторых, в последствии вы можете получить ряд проблем, о некоторых из которых рассказано в разд. "Системы координат" этой главы.

Базовые типы геометрических объектов

Любой параметрический объект может быть преобразован к одному из пяти базовых типов, конечно, в том случае, если это возможно. Например, кубик (Box) нельзя преобразовать к типу Editable Splines (редактируемые сплайны), а вот в NURBS (неравномерный рациональный би-сплайн) он конвертируется прекрасно, преобразуясь к объекту, состоящему из шести NURBS поверхностей.

Преобразование производится при помощи команд Convert to, которые вызываются либо в квадрупольном меню, либо в контекстном меню стека модификаторов.

После преобразования становятся доступными элементы объекта, называемые подобъектами (Sub-Objects), которые можно перемещать, вращать, а также применять различные команды. Для каждого базового типа набор подобъектов свой и свой набор команд для работы с ними. Быстрое переключение между подобъектами осуществляется клавишами от <1> до <5> на основной клавиатуре.

Замечание

В какой-то мере это аналогично тому, как организован процесс работы с объектами в некоторых пакетах векторной графики, например, CorelDRAW или Xara Xtreme. После создания прямоугольника или окружности вы не можете редактировать отдельные вершины, а должны преобразовать объект в редактируемые кривые при помощи команды

Convert to Editable Curves.

После преобразования объект "забывает" о том, чем он был изначально — окружностью, сферой или чайником. Это просто набор вершин, ребер и т. д. Если вам важно сохранить возможность возврата на уровень параметрического объекта, то воспользуйтесь соответствующим модификатором (например, Edit Spline, Edit Poly и т. п.).

Редактируемые сплайны (рис. 1.10), или кривые (Editable Splines), или формы (Shapes), должны быть хорошо знакомы тем, кто работает с пакетами векторной графики. Основных отличий два. Как указывалось ранее, кривые построены из отрезков прямых, и за качество их отображения отвечают параметры в свитке Interpolation. Второе отличие — кривые построены не на плоскости, а в трехмерном пространстве. Поэтому мы считаем не совсем корректным термин "плоские формы". Как можно считать плоской формой, например, спираль (Helix) с параметрами радиусов и высоты?

www.realtime. ru / 119501 Мос ква ул. Нежинская д.5 / тел.: (495) 4425966,4425977 11

Рис. 1.10. Редактируемые сплайны

Подобъектов у сплайнов три: вершины (vertex), сегменты (segment) и сплайны (spline). Последние представляют собой связанные в единую цепочку сегменты.

Замечание

К сожалению, до сих пор для сплайнов не предусмотрены подобъекты типа Handles (ручки Безье), хотя для лоскутов этот тип существует, начиная с 3ds Max 6.

Редактируемые лоскуты (Editable Patches) основаны на тех же алгоритмах и принципах, что и сплайны, только все это относится уже не кривым, а поверхностям.

Начиная с версии 6, в 3ds Max лоскуты имеют пять типов подобъектов (рис. 1.11, а):

вершины (Vertex, аналогичны вершинам в сплайнах);

ручки Безье (Handles, к сожалению, в сплайнах этот тип отсутствует);

ребра (Edges, аналогичны сегментам);

лоскуты (Patches, аналогичны сегментам, но уже в виде поверхностей);

элементы (Elements, аналогичны сплайнам).

Идея лоскутов заключается в том, что вы работаете с каркасом, состоящим из четырехугольников и треугольников, а поверхности создаются автоматически, в зависимости от положения и длины ручек Безье и количества шагов разбиения (steps), причем для работы и рендеринга вы можете использовать разное количество шагов, получая на выходе значительно более гладкую поверхность (рис. 1.11, б).

Рис. 1.11. Подобъекты лоскутов (а) и результат применения различных настроек лоскутов для отображения в окне проекции и рендеринга

(б)

В общем, лоскуты — неплохой инструмент, если бы не ряд следующих недостатков, которые делают работу с ними очень трудоемкой при достаточно сложной геометрии:

У вершин отсутствуют типы, аналогичные Corner и Smooth в сплайнах, есть только Corner, что соответствует Bezier Corner в сплайнах, и Coplanar (Bezier). При большом количестве вершин весьма трудно добиться хорошей гладкой поверхности, поэтому мы советуем вам, если вы все же решите осваивать этот метод моделирования, добиваться нужного результата на этапе создания каркаса, т. е. на уровне редактируемых сплайнов, сведя доработки на уровне лоскутов к минимуму.

Количество углов ограничено тремя или четырьмя, что тоже не добавляет удобств при моделировании.

www.realtime. ru / 119501 Мос ква ул. Нежинская д.5 / тел.: (495) 4425966,4425977 12

Поверхности в лоскутах являются регулярными, на большую и малую площадь отводится одно и то же количество шагов интерполяции, что не очень хорошо с точки зрения оптимизации модели.

Инструментарий для работы с лоскутами довольно беден по сравнению с полигональным моделированием.

Достаточно сложен процесс текстурирования поверхностей лоскутов.

Тем не менее, лоскуты можно использовать в качестве заготовки для дальнейшего моделирования с использованием полигонов.

Поверхности и кривые NURBS (NURBS Curves and Surfaces), неравномерные рациональные B-сплайны

(NURBS — Non-Uniform Rational B-Splines), появившись в версии 3ds Max 2 и улучшенные в версии 2.5, с тех пор почти не изменялись. По сути, они очень похожи на сплайны и лоскуты, но в их основе лежат другие алгоритмы и уравнения. К сожалению, реализованы NURBS в 3ds Max не лучшим образом, слишком много труда нужно приложить и слишком много параметров нужно "подкрутить", чтобы поверхность приняла нужную форму. Особенно сложен интерфейс, так как почти нет дополнительных экранных манипуляторов, позволявших бы не обращаться к параметрам в "простынях" (так злые языки конкурентов окрестили свитки в командной панели). Кроме того, в окне проекции в затененном режиме с отображением ребер (Smooth + Highlight + Edged Faces) показывается треугольная сетка, а хотелось бы видеть изопармы (каркас) (рис. 1.12). Математический аппарат и возможности великолепны, но как раз поэтому NURBS-моделирование связано с большим объемом вычислений и, как следствие, очень "медлительно" в работе.

Рис. 1.12. Отображение NURBS-поверхности в окне проекции

В принципе, это неплохой инструмент, но перечисленные недостатки в совокупности с достоинствами полигонального моделирования сокращают область их применения почти до нуля, за исключением случаев создания поверхностей по нескольким сложным сечениям без последующей доработки.

Если вас привлекает данный метод моделирования, задумайтесь об освоении более "продвинутых" и одновременно дружественных в этой области пакетов, например, Rhinoceros 3D, Amapi или набирающий обороты пакет Moment of Inspiration (MoI). А вершиной NURBS-моделирования, несомненно, является Autodesk AliasStudio. По мнению специалистов, по сравнению с этим пакетом можно считать, что NURBS в других п а- кетах просто нет.

Редактируемые сетки (Editable Mesh, “меш” – именно так уже скоро два десятка лет называют эти объекты профессионалы трехмерной графики) и редактируемые полигоны (Editable Poly, Polymesh, “полимеш”) — мы неслучайно объединили обзор этих двух различных между собой состояний объекта, так как, на первый взгляд, это одно и то же. И там, и там вершины (Vertex), ребра (Edge), полигоны (Polygon), элементы (Elements) (рис. 1.13, а, б). И лишь одно отличие (подобъекты Border не в счет) — наличие в Editable Mesh подобъектов Face (треугольная грань) и отсутствие их в Editable Poly (редактируемом полигоне), на самом деле, является принципиальным и требует небольшого экскурса в историю вопроса.

www.realtime. ru / 119501 Мос ква ул. Нежинская д.5 / тел.: (495) 4425966,4425977 13

Рис. 1.13. Подобъекты в Editable Mesh (а) и Editable Poly (б)

В 3D Studio для DOS существовали только “меши” — объекты, созданные из треугольных граней. Почти без изменений этот механизм был перенесен в 3D Studio MAX. При создании 3D Studio MAX разработчики полагали, что моделирование на низком уровне не будет востребовано, делая упор на модификаторы, но практика показала, что без этого не обойтись, особенно при моделировании для 3D-игр, где каждый треугольник был (и остается) на вес золота. Постепенно Editable Mesh усложнялся, появились подобъекты "полигоны" — грани, ограниченные видимыми ребрами, даже присутствует некоторая интеллектуальность. Например, при разрезании полигона в старых версиях Editable Mesh появлялись паразитные вершины в том месте, где разрез происходил по невидимым ребрам. Начиная с 3-й версии, это автоматически корректируется, правда, не всегда успешно (рис. 1.14). Вычищать геометрию приходилось постоянно, что очень замедляло процесс моделирования.

Рис. 1.14. Вершины, помеченные кружками, являются паразитными и должны быть удалены

Видимо, в какой-то момент времени дальнейшее усложнение Editable Mesh было признано нецелесообразным, тем более что нужно было сохранить совместимость с предыдущими версиями, иметь возможность загрузки моделей, сделанных в более ранних версиях. Дело в том, что в файле 3ds Max нет ни мешей, ни сплайнов, ни чего-то подобного. Есть данные для плагина Editable Mesh, данные для плагина Editable Spline и т. д. По-сути,

при загрузке файла сцена воссоздается заново на основе этих данных, и несоответствие новых алгоритмов старым может привести к некорректному результату, весьма далекому от оригинала. Кстати, именно это и происходит с объектами типа Boolean, которые подвергались ревизии несколько раз.

Поэтому был разработан модуль, Editable Poly, который, по сути, позволяет делаеть то же самое, но принципиально по-другому. Треугольники скрыты от пользователя, нет понятия видимых или невидимых ребер — ребра либо есть, либо их нет. В процессе моделирования 3ds Max постоянно следит за корректностью геометрии и при необходимости "подправляет" ее, триангулируя модель так, чтобы поверхность полигона была наиболее близка к плоскости. Кроме этого, Editable Poly постоянно следит за текстурными координатами и делает еще многое другое, что скрыто от пользователя. Все это делает Ediatable Poly значительно более привлекательным для моделирования, чем Editable Mesh.

Обратная сторона медали — относительная медлительность полимеша, по сравнению с мешем, особенно при анимации деформаций (например, при помощи костей). Эта проблема очень часто решается так: моделирование проводится с использованием полимеша, а для анимации модель предварительно преобразуется в меш. Это преобразование, как правило, безболезненно в обоих направлениях.

Инструментарий Editable Mesh на момент написания книги остался на уровне версии3, в то время как все силы разработчиков были направлены на создание инструментария для работы с полимешами, и им это удалось, в текущей версии полигональное моделирование можно считать близким к идеальному. Кроме того, в 3ds Max 9 и выше были сделаны весьма большие шаги в сторону оптимизации полимешей, увеличения скорости работы с ними в окне проекции за счет более интенсивного использования возможностей Direct 3D. В сочета-

www.realtime. ru / 119501 Мос ква ул. Нежинская д.5 / тел.: (495) 4425966,4425977 14