В этой главе обсуждаются основы создания объектов вместе с характеристиками и использованием базовых геометрических примитивов. Несмотря на то, что речь идет о простейших объектах, применяемые для них правила такие же, как и для большинства сложных объектов. Кроме того, простые примитивы часто используются в качестве строительных блоков для создания достаточно сложных или органических моделей.
В этой главе обсуждаются следующие вопросы:
Основы создания трехмерных примитивных объектов
Использование Ноте Plane (основной плоскости) и Grid Helpers (вспомогательных объектов сетки)
Достижение точности
Опции создания, применяемые ко многим типам объектов
Хотя объекты в 3D Studio MAX могут показаться очень сложными, их создание является быстрым и легким процессом. Каждый создаваемый объект по своему характеру является параметрическим, т.е. его форма определяется серией параметров. В процесс создания объекта обычно входят следующие шаги:
Выбор опорной плоскости для объекта (наиболее часто это означает просто активизация конкретного видового окна).
Выбор точки на плоскости, которая будет начальной точкой объекта.
Перетаскивание мыши для определения оставшихся параметров объекта.
Предполагается, что в 3D Studio MAX процесс создания геометрии должен быть интерактивным. Это означает, что обычным методом создания объекта является щелчок в видовом окне и затем перетаскивание курсора для определения оставшихся параметров. 3DS МАХ рисует результирующую геометрию одновременно во всех видовых окнах по мере определения расстояний и выполнения процесса создания.
Плоскость, на которой создается объект, определяется либо с помощью видового окна, либо с помощью активной конструкции вспомогательного объекта Grid. Место расположения объекта является характеристикой определения объекта. Большинство объектов основываются на плоскости создания и по ней определяют высоту. Например, цилиндрические примитивы размещают свои нижние круглые цоколи на плоскости создания, а параметр высоты вытягивает перпендикуляр из этой плоскости. Поскольку примитивы Sphere (сфера), GeoSphere (геосфера). Torus (тор), Hedra ("морской еж") определяются своими центрами масс, они являются исключениями из этого правила и располагают на плоскости конструкции свой центр массы. В то время, как другие объекты опираются на плоскость конструкции, эти три объекта будут рассекаться ею пополам.
Плоскость, на которой начинается примитив, является местом расположения его точки вращения. Точка вращения - это центр локальных осей объекта, и она определяет точку, вокруг которой вращается объект. Такое первоначальное создание определяет также постоянную ориентацию ограничивающей рамки объекта.
ПРИМЕЧАНИЕ
Приведенные выше описания являются стандартом для примитивов 3DS МАХ. Объекты, созданные независимыми разработчиками (или вами), могут следовать этим соглашениям или иметь другие методы создания и расположения своих точек вращения где-то в другом месте.
При создании различных примитивов клавиша Ctrl выполняет специальную и в какой-то мере скрытую работу. За исключением Box каждый примитив позволяет за счет нажатия клавиши Ctrl в любой момент между первой и последней определяющими точками отрегулировать свое первоначальное вращение. Это позволяет быстро ориентировать объекты во время их создания. Нажатие клавиши Ctrl для Box ограничивает первоначальное создание до квадрата и не влияет на его вращение.
Ввод с клавиатуры обеспечивается для всех примитивов в качестве удачной альтернативы интерактивного метода. С помощью клавиатуры необходимо ввести все параметры, которые обычно извлекаются при интерактивном вводе. Например, создание коробки обычно состоит в выборе начальной точки, перетаскивании для определения противоположного угла и еще одном перетаскивании для определения высоты. На рисунке 7.1 показано, что для выполнения одного и того же посредством клавиатуры необходимо выполнить шесть вводов, а при работе в интерактивном режиме - всего три шага. Кроме того, при работе с клавиатурой нет никакой визуальной информации вплоть до завершения процесса создания. На практике работу с клавиатурой при создании следует зарезервировать для тех случаев, когда точное размещение имеет решающее значение и соответствующие данные доступны. Хотя ввод с клавиатуры можно использовать для создания всех примитивов (за исключением Hedra), в этой книге всегда будет предполагаться, что объекты создаются в интерактивном процессе.
В то время, как процесс создания посредством клавиатуры может показаться более точным, такая же точность достижима при интерактивном создании объекта и регулировка его параметров из панели Modify, a расположения - из диалога Transform Type-In. Подобную точность можно получить при помощи Snap с учетом соответствующих установок сетки. В большинстве случаев интерактивный процесс создания с последующей модификацией проходит быстрее, поскольку критичными являются один-два параметра.
СОВЕТ
Создание с помощью клавиатуры может оказаться быстрее создания в интерактивном режиме, если известно начало мировых координат и размеры объекта. Этот факт может быть уже известным, если вы использовали одну из программ, требующих, чтобы объекты создавались в начале координат.
После определения объекта либо в интерактивном режиме, либо с помощью клавиатуры параметры панели Create (создать) остаются "активными" и продолжают оказывать влияние на только что созданный объект. Это отношение между панелью Create и недавно созданным объектом разрушается при щелчке в видовом окне или переключении на другую операцию. Если необходимо отредактировать параметры создания объекта после этой первоначальной точки, просто перейдите с выбранным объектом на панель Modifier.
При использовании стрелок счетчика следует помнить, что нажатие клавиши Ctrl ускоряет мышь, а нажатие клавиши Alt - замедляет. При редактировании цифровых полей замена поля на "г" плюс значение добавляет последнее к оригинальному, "г" в этом случае обозначает "относительный", поскольку при этом значение добавляется относительно оригинала. Процесс относительного ввода показан на рисунке 7.2, на котором параметр Height (высота) 96.0 увеличивается посредством R24 для получения окончательного значения 120.0.
#PВ 3DS МАХ мировая система координат зафиксирована и ее оси всегда пересекаются в абсолютных координатах О, О, 0. Через эту постоянную точку проходят три бесконечные сетки конструкции, которые называются собственными сетками. Эти три ортогональные плоскости собственных сеток параллельны одной из трех мировых осей, что показано на рисунке 7.3. Виды, отличающиеся от шести ортогональных видов, всегда используют собственную сетку X, Y. Из-за ведущего места, которое занимает эта сетка, и поскольку в моделировании она почти всегда представляет плоскость земли, она часто называется плоскостью подложки. Виды Perspective (перспектива), User (пользователь). Camera (камера) и Spotlight (точечный источник света) всегда отображают плоскость подложки, когда собственная сетка активна.
СОВЕТ
Необходимо запомнить общее правило: "Если вы можете видеть активную сетку (линии сетки видимы), то такая сетка является активной плоскостью конструкции для данного видового окна".
При создании объектов при помощи основных сеток, вид, в котором начинает создаваться объект, определяет плоскость конструкции. При создании объекта в видовом окне Orthogonal определяется положение двух из трех координат точек подбора. Третья координата определяется с помощью текущей основной сетки. Например, в случае создания объекта создается в видах Right или Left, определяется положение Z и Y, а компонента Х помещается на основную сетку XY в позицию 0. На рисунке 7.3 показаны плоскости и их обозначения XYZ.
ПРИМЕЧАНИЕ
При создании объекта в неортогональном видовом окне всегда определяется положение Х и Y, а компонента Z равна нулю (до тех пор, пока основная сетка активна). Таким образом, если объект создается в видах Perspective, User, Camera или Spotlight, объекты всегда помещаются на плоскость грунта.
Если требуется конструировать на плоскостях, отличных от основных сеток или использовать одну и ту же плоскость во всех видовых окнах, доступны объекты вспомогательных сеток. Можно заметить, что основных сеток по умолчанию оказывается достаточно при использовании 3DS МАХ для создания независимых изолированных моделей. Однако объекты сетки становятся весьма полезными при увеличении сложности модели и в случае необходимости координации с другими сборщиками (другими программами). Сетки играют неоценимую роль при определении плоскостей конструкции, которые выравниваются с видами, гранями и объектами.
СОВЕТ
При работе со сценами, расположенными далеко от начала мировых координат, хорошей практикой является создание объектов сетки там, где выполняется моделирование, и использование их вместо основных сеток. Это предотвращает нежелательную ситуацию, заключающуюся в создании источников света и камер на больших расстояниях от предполагаемого места их расположения.
Манипуляции со вспомогательными объектами сетки выполняются так же, как и с другими объектами, поэтому их легко перемещать, вращать и выравнивать. Функция Normal Align (нормальное выравнивание) имеет особенно ценное значение при построении по отношению к моделям. Для использования объекта сетки его сначала необходимо активизировать путем выбора объекта сетки, а затем либо правого щелчка (как показано на рисунке 7.4), либо выбора Grids/Activate Grid Object (Сетки/Активизировать объект сетки) из меню Views. После активизации основные сетки исчезают и отображаются линии объекта сетки. В данной главе под, текущей активной сеткой понимается или активизированный объект сетки, или видимая плоскость собственной сетки в текущем окне.
ПРЕДУПРЕЖДЕНИЕ
Объекты сетки не рекомендуется масштабировать. В этом случае интервал сетки остается немасштабированным. Отношение между визуальной сеткой и сеткой фиксации теряется. Если необходима большая сетка, всегда следует изменять параметры ее создания. При случайном масштабировании сетки масштаб можно сбросить до 100% через Transform Type-In.
Можно выполнить такое присвоение, что видовое окно станет окном Grid и будет отображать вид плоскости XY (план) текущего активного объекта сетки (что показано слева на рисунке 7.4). Когда основные сетки активны, видовые окна Grid отображают плоскость XY основной сетки (плоскость грунта). Виды Grid выполняют динамическое обновление при позиционировании и вращении активного объекта сетки. Теперь имеется постоянный вид с возвышения перпендикулярно плоскости. Виды Grid особенно полезны при создании сплайнов под углами к мировым осям. В этом смысле виды Grid можно считать плоскостями картинки, на которых выполняется рисование в традиционной перспективе.
СОВЕТ
Сетки являются единственными объектами, которые можно выравнивать с видом. Если с видом требуется выровнять другие объекты, сначала создается объект сетки и выравнивается с видом. Теперь сетку можно использовать для выравнивания других объектов посредством либо Align, либо Normal Align.
Объекты сетки оказывают помощь не только при создании объектов. Создание ссылок на активный объект Grid в качестве текущих координатных систем для трансформаций, выравнивания, массивов и зеркаль-ного отображения часто оказывается очень полезным и широко применяется для объектов, которые создаются на сетке или выравниваются с ней.
ПРИМЕЧАНИЕ
Импортируемые из других программ модели часто располагаются очень далеко от начала мировых координат, поскольку они были так созданы в других программах. Подобное расположение может привести к нежелательным последствиям в виде ошибок округления. Одно из решений проблемы заключается в перемещении всей сцены к началу координат. Однако такое решение также нежелательно, если планируется координация с внешней базой данных. В этом случае следует увеличить System Unit Scale в General Preferences (см. главу 5, "Планирование проектов", в которой приводится более подробная информация).
В качестве инструментов для обеспечения точности при создании 3D Studio MAX обеспечивает системы сеток и фиксации. Отсчеты в нижней части экрана, показанные на рисунке 7.5, отображают координаты X, Y, Z текущего расположения курсора или текущее смещение при позиционировании, вращении или масштабировании. В процессе создания отсчет показывает координаты курсора. При трансформациях отсчет сообщает относительное расстояние трансляции, угол поворота или проценты масштабирования. Для обеспечения точности тщательно следите за отображением координат при перетаскивании или определении подходящего инкремента для активной сетки. Доступ к диалогу Grid and Snap Settings осуществляется по правому щелчку над различными пиктограммами фиксации, путем выбора его из меню Views или посредством присвоенной горячей клавиши.
СОВЕТ
Подходящий размер сетки очень помогает при создании объектов. Присвоение диалогу Grid and Snap Settings знакомого клавиатурного сокращения существенно ускоряет уточнение этих полезных установок (подобно Ctrl+A из 3DS под DOS).
Хотя система фиксации обеспечивает опции для фиксации вершин, ребер, пересечений сетки и линий сетки в пространствах 2D, 2.5D и 3D, доступность этих опций зависит от ситуации. При создании 3D-примитивов система фиксации всегда находится в режиме 2D, а активная сетка обеспечивает недостающий компонент координаты. Прочие установки фиксации 2D и 2.5D применяются только для создания объекта сплайна Line. Фиксация вершин и ребер применяется часто, но только для вершин и ребер, которые лежат на активной сетке. Геометрия всегда сравнивается с расположением сетки. При таких ограничениях инструмент обеспечения точности в процессе создания на самом деле опирается на сетки.
ПРИМЕЧАНИЕ
Absolute snap (абсолютная фиксация) является проекцией на пространство экрана и существует только тогда, когда активна координатная система Screen или View. При работе в координатных системах World, Parent, Local, Grid или Pick установка Absolute snap превращается в Relative snap (относительная фиксация).
Видовые окна сетки оказывают неоценимую помощь при использовании объектов сетки. Эти окна совершенно выровнены с активной сеткой даже при повороте и позиционировании объектов сетки. Они предоставляют возможность постоянно корректировать и центрировать вид плана плоскости конструкции.
ПРИМЕЧАНИЕ
Пользователи AutoCAD, привыкшие к системе координат пользователя (UCS), найдут, что использование сеток очень похоже на UCS за исключением того, что сетки являются объектами, которыми можно манипулировать. Изменение активной системы координат на сетку подобно созданию и модификации с помощью поименованных UCS в AutoCAD.
Процесс создания всегда происходит на активной сетке. Многие из тех, кто занимается моделированием, считают, что с точки зрения быстроты и точности предпочтительнее переориентировать сетку, чем создавать новую и затем изменять положение объектов.
Для создания объектов, параллельных видам User, Perspective, Camera и Spotlight, следует применять активный объект сетки, поскольку в случае активности основных видов используется только плоскость подложки (грунта) X, Y. При выбранном активном объекте сетки выполните Views -> Grids -> Align to Views и сетка будет выравниваться с этим видом. Теперь сетка готова для конструирования.
Знание основ процесса конструирования и достижения точности позволяет исследовать способы определения примитивов и манипуляции их параметрами. Геометрические примитивы 3D Studio MAX (см. рис. 7.6) обеспечивают строительные блоки, с использованием которых создается множество других форм. Те, кто занимается моделированием, используют примитивы в качестве начальной точки для создания каркаса и вершины. В общем случае примитивы служат инструментами построения и моделирования при создании булевых составных объектов. Стандартными геометрическими примитивами в 3DS МАХ являются:
Коробка (кубическая или прямоугольная)
Сфера (на базе четырехугольников)
Геосфера (на базе треугольников)
Цилиндр (сплошной или полый)
Труба (полая форма цилиндра)
Конус (остроконечный вариант цилиндра)
Тор (пончик)
Hedra или "ежик" (пять геометрических семейств с разнообразными возможностями)
Все примитивы имеют параметры для управления их определяющими размерами - результирующей сложностью, гладкостью и генерацией координат проецирования. Первоначально можно свободно обращаться со всеми параметрами, поскольку их всегда легко модифицировать и установить такими, как это необходимо, путем уточнения их значений из панели Modify или позже из Track View.
ПРИМЕЧАНИЕ
Вы никогда не должны связывать себя при первоначальном создании объекта, что характерно для большинства ЗD-программ. Все значения параметров создания уточняются позже через панель Modify. Эти значения нельзя регулировать после выполнения операции, разрушающей стек объекта. Перед выполнением подобной операции (например, Edi+Mesh/Attach) следует проанализировать параметры создания и учесть, сколько деталей требуется для объекта сцены.
Создание геометрических примитивов достаточно прямолинейно. Просто выбирается базовая точка и затем для определения оставшихся размеров выполняется перетаскивание. В случае активности основной сетки выбранное для создания видовое окно определяет размещение объекта. Каждый примитив поступает с определяющими размерами и сегментацией, а некоторые имеют опции среза и разрезания на пластины для определения только части исходного примитива.
Для большинства объектов установлен предел в 200 сегментов для любого взятого размера. Это достаточно высокий предел и его редко используют. Например, коробка, имеющая стороны с 200 сегментами, содержит 480000 граней, а чайник с максимальным числом сторон 74 имеет 272144 грани. Фантастическим в параметрической геометрии является то, что хотя она и оказывает влияние на объем памяти для сцены и визуализации, занимаемое дисковое пространство файла МАХ оказывается независимым от уровней сегментации, пока объект остается параметрическим.
СОВЕТ
С целью управления размерами сцены и скоростью реакции полезно сохранять параметрические объекты с минимальной сегментацией и увеличивать ее только в случае необходимости. Один из методов предполагает моделирование и позиционирование кадра с очень низкими установками, а затем визуализация другого кадра с высокими установками. Влияние на размер файла оказывается минимальным, поскольку для параметров сегментации добавляются только ключи анимации.
По определению параметрические объекты имеют набор управляющих параметров, которые диктуют результат. Эти параметры изменяются в зависимости от объекта, но большинство из них можно сгруппировать в следующие категории (первые четыре категории - размеры, сегменты, сглаживание и координаты проецирования -доступны во всех объектах).
Размеры определяют размер параметрического объекта при измерении от его точки создания. Общие размеры включают высоту, длину и ширину, в то время как круговые объекты обычно содержат параметры радиуса. Некоторые разработчики в качестве альтернативы используют периметр, объем и массу.
ПРИМЕЧАНИЕ
При масштабировании объекта посредством трансформации его параметры создания не отражают результирующих общих размеров. Если объект должен сохранить свое параметрическое определение, вместо применения трансформации следует изменять его параметры создания. Масштабирование параметрических объектов должно быть зарезервировано для случая, когда потребуется задавать масштаб вдоль различных осей или вокруг различных точек.
Сегменты определяют плотность каркаса объекта в различных размерах. Криволинейные размеры для достижения более высокой разрешающей способности требуют большей сегментации, а линейные размеры требуют увеличения сегментации только в том случае, если планируется деформировать объект вдоль этого измерения.
Параметры сглаживания управляют автоматическим добавлением групп сглаживания к объекту. Некоторые объекты, например. Torus, обеспечивают удобные опции для сглаживания, которое трудно выполнимо непараметрическим способом. Заказное сглаживание для конкретных выборок граней можно присвоить посредством модификаторов EditMesh (отредактировать каркас) или Smooth (сгладить).
Mapping Coordinates (координаты проецирования) управляют добавлением к объекту параметрических координат распределения. По умолчанию примитивы создают проецирование с фиксированной укладкой, равной 1.0 в каждом направлении. Объекты от других разработчиков могут иметь возможность управления укладкой и экстентами их параметрического проецирования. Заказное проецирование присваивается с помощью модификатора UVW Map.
"Порции" управляют полнотой создания объекта. Общие примеры включают Cylinder & Tube slicing (цилиндрические и трубчатые пластины). Sphere chopping (сферические срезы) и Teapot part (части чайника). Объекты от других разработчиков могут включать в себя количество зубьев шестеренки либо компоненты окна или автомобиля.
"Вариации" манипулируют размерами и сегментацией различными способами. Они обычно являются "дополнениями" для объектов и включаются в них для создания интересных вариаций, которые трудно создавать другим способом. Примерами этой группы для случая Torus являются Twist и Rotation. Другие разработчики могут определять возможности, подобные ветру, тяжести, возрасту и т.д.
"Семейство" изменяет весь результат действия других параметров. Общими примерами являются Type для GeoSphere и Family (семейство) для объектов Hedra. Некоторые разработчики определяют род, породу, расу, изготовителя, линию, продукт и пр.
Каждый примитив имеет точку, от которой производится измерение его размеров. Этот пространственный центр является также первоначальным положением точки вращения объекта. При любом перемещении
точки вращения положение пространственного центра никогда не изменяется, поскольку он является неотъемлемой частью определения объекта. Расположение пространственного центра для основных примитивов показано на рисунке 7.7.
Параметрические объекты всегда начинаются с одной и той же ориентации локальной системы координат. Например, первоначальная ось Х чайника всегда находится по центру его ручки и носика, независимо от того, где он был создан.
Эта ориентация определяет ориентацию ограничивающей рамки объекта до тех пор, пока объект сохраняет параметрическое определение. В отличие от других программ, ограничивающая рамка объекта не указывает ориентации своих внутренних осей - эта ориентация полностью управляется ориентацией точки вращения объекта, текущей активной системой координат либо и тем, и другим.
СОВЕТ
Иногда более предпочтительной оказывается работа в режиме Box, например при регулировке сложной геометрии, которая в противном случае потребовала бы значительных задержек при обновлении экрана. В подобного рода ситуациях важным может оказаться сохранение постоянных ориентации ограничивающей рамки. Для переориентации ограничивающей рамки объекта его можно присоединить к каркасному объекту с предпочитаемой ориентацией ограничивающей рамки (используя EditMesh/ Attach). После присоединения можно свободно отсоединить элемент с новой ориентацией или удалить целевой элемент. Этот процесс следует применять только при необходимости, поскольку он разрушает стек присоединенного объекта и заставляет присоединенный объект наследовать точку вращения объекта, к которому он присоединен. Альтернативным методом является использование утилиты Reset Transform (сброс трансформации) в RI.I для применения модификатора XForm к объекту, что обеспечивает тот же эффект без удаления истории данных объекта.
Примитивы, имеющие определяемые линии пластин, обычно имеют опции параметров Slice (пластина) и Chop (срез). Опция Slice On (включить разделение на пластины) позволяет посредством параметров Slice From и Slice To определить начальное и конечное положение пластины "кругового объекта", расположенного по центру создания объекта (см. рис. 7.8).
Параметры пластины выражаются в углах, а результирующий срез всегда проходит вдоль сторон. Важной характеристикой пластины является то, что при анимации пластины обеспечивается такое же количество сегментов, что придает объекту "развернутый" вид.
Примитив Sphere отличается тем, что имеет параметр Hemisphere (полушарие) с диапазоном изменения 0-1 (что определяет часть сферы в процентном выражении). Опция Squash (расплющить) поддерживает такое же количество сегментов для результирующей секции сферы. Опция Chop (срез) делит сферу на секции в тех же местах, что и Squash, но не изменяет остатка первоначально определенных сегментов сферы. На рисунке 7.9 показаны сферы с одинаковыми значениями Hemisphere в Squash и Chop. Опция Base to Pivot (взять за базу точку вращения) существенно изменяет эффект Hemisphere. При отмеченной Base to Pivot основание секционированной сферы всегда опирается на плоскость создания. При анимации сфера кажется всплывающей из плоскости так, как будто она разрывает поверхность жидкости. Если Base to Pivot не отмечено, верх секционированной сферы остается неподвижным и кажется, что сфера вырастает из него (рис. 7.9).
Примитивы 3D Studio MAX генерируют по умолчанию координаты проецирования в качестве помощи для быстрого выбора текстуры. Это не автоматическая опция, поскольку координаты проецирования влияют на размер файла ввиду добавления дополнительных данных. Координаты по умолчанию фиксируются в методе проекции и обычно являются одной мозаичной единицей в каждом направлении. Хотя их нельзя регулировать (они определены параметрически), присвоенный им материал может иметь смещение и способ укладки мозаикой при проецировании, регулируемых при необходимости. Для дополнительного управления или для изменения типа проецирования к объекту в собственных координатах можно добавить модификатор UVW Map. На рисунке 7.10 показано проецирование по умолчанию для основных примитивов.
Поверхности, которые визуализируются в компьютерной графике, необходимо преобразовать в треугольные грани. Это справедливо для всех программ, даже для тех, которые работают полностью на поверхностях, форма которых кажется свободной. При визуализации эти поверхности преобразуются в грани (хотя этот факт может и не демонстрироваться). Трехмерная дуга и криволинейные поверхности непосредственно не поддерживаются, а скорее аппроксимируются сегментами, которые в свою очередь состоят из граней. Чем более гладкая кривая, тем больше требуется сегментов и граней.
Для минимизации накладных расходов моделирования и поддержания скорости в 3DS МАХ включено понятие сглаживания. Сглаживание влияет на объект при его визуализации так, как если бы его геометрия была на самом деле сферической. Ребра, которые существуют между сглаженными гранями, в значительной степени игнорируются визуализатором по мере сглаживания сетки. Визуализированный эффект сглаживания отличается в интерактивном и окончательном визуализаторах из-за уровня визуализации затенения. Окончательный визуализатор использует в основном модели затенения Phong и Metal, создающие очень гладкие яркие участки путем усреднения цветового пространства каждого пиксела. Это противоположно используемой при сглаживании в 3D Studio MAX модели затенения Gouraud, при которой затенение интерполируется затенения между вершинами. Поэтому результирующее качество ярких участков зависит от плотности каркаса, поскольку чем больше определений, тем больше между ними затеняется вершин. На рисунке 7.11 приведено сравнение того, как выглядит одинаково гладкая геометрия в затененном видовом окне и в окончательном визуализаторе. На рисунке 7.12 показана та же геометрия без опции сглаживания.
Эффект сглаживания наиболее заметен на сферических каркасах, являющихся формой, на которой происходят аппроксимации функции сглаживания. Хотя сферы, созданные с совершенно различным количеством граней, имеют центральные секции, которые выглядят на удивление одинаково, в профиле сферы важными становятся дополнительные детали. На рисунке 7.12 показано, как очевидная "округленность" любого криволинейного периметра формы всегда определяется числом граней, из которых он состоит. Как человек, занимающийся моделированием, вы должны балансировать между количеством граней в сцене и необходимой степенью детализации. Помните, что сглаживание не влияет на истинную геометрию объекта - это только способ визуализации его поверхности.
ПРИМЕЧАНИЕ
Сглаживание не следует путать с модификатором MeshSmooth (сглаживание каркаса) (введено в версии 1.1), который фактически влияет на топологию поверхности, а не только на ее характеристики визуализации.
Сглаживание создает иллюзию округленности за счет присвоения соответствующим граням групп сглаживания. Все прилегающие соединенные грани, совместно использующие общую группу сглаживания, сглаживаются по своим граничным ребрам. Запомните, что сглаживание может работать только между соединенными гранями. Поэтому, когда объект имеет несколько групп сглаживания, которые присвоены различным его частям, сглаживание не распространяется на несоединенные области даже в том случае, если граням присвоена одна и также группа сглаживания.
СОВЕТ
Группы сглаживания, созданные процедурными методами, обычно очень хорошо организуются и обеспечивают удобный метод для выборки при использовании модификатора EditMesh.
Для большинства примитивов при выключенной опции Smooth группы сглаживания не присваиваются. Коробки, цилиндры и конусы являются исключениями и по-прежнему присваивают группу сглаживания своим плоским колпачкам. Обычно последующие операции моделирования могут деформировать эти ребра. Общая группа сглаживания для трех плоскостей обеспечивает продолжение их гладкой (и предположительно плоской) визуализации. Об этом следует помнить, когда вы начинаете деформировать эти стороны из их первоначальной плоскости и, возможно, не хотите, чтобы они в дальнейшем были гладкими.
ПРИМЕЧАНИЕ
Когда начинается модификация объекта, в особенности на уровне подобъектов, первоначальные присвоения группы сглаживания, вероятно, окажутся неправильным. В этом случае потребуется присвоить модификатор Smooth или выполнять сглаживание через модификатор EditMesh.
Во время манипуляции объектом или выборкой ряд компонентов оказывают помощь, руководят или управляют результатами процесса. Описанные в последующих разделах компоненты сами по себе не существуют, но временно используются в ходе выполнения операций.
Ограничивающая рамка (Bounding Box) представляет собой прямоугольную рамку, размер которой определяется экстентом объекта или текущего временного набора выборок. Если активна Adaptive Degradation (адаптивная деградация), ограничивающая рамка используется в качестве объекта замены при перетаскивании выборок во время выполнения команд. Экстенты и центр ограничивающей рамки выборки используются в качестве основы для команды Align (выровнять). Ориентация ограничивающей рамки определяется отношением объекта с мировой системой координат при его создании. Ограничивающую рамку можно переориентировать только косвенно, а не явно, путем переориентации объекта.
Эта матрица представляет собой таблицу чисел, поддерживаемую 3D Studio MAX для отслеживания изменений в расположении, ориентации и размерах объектов. Расположение объекта определяется пересечением трех плоскостей в центре ограничивающей рамки. Ее использование совершенно очевидно, но может повлиять на эффект некоторых материалов и трансформаций Keyframer.
Локальная система координат (Local Coordinate system) (или пространство объекта) уникальна для объекта и обеспечивается в таблице чисел, которая называется матрицей трансформации 3DS МАХ, отслеживающей изменения в расположении, ориентации и размерах объекта. Расположение объекта определятся пересечением трех плоскостей в центре ограничивающей рамки так, как оно определялось при создании объекта. В то время, как использование матрицы трансформации совершенно очевидно, локальные координаты оказывают влияние на материалы, использующие типы SD-карт, и на различные трансформации.
Coordinate Systems (системы координат) определяют ориентацию плоскостей X, Y, Z и являются основой, на которой выполняются (неанимированные) трансформации. Используемая координатная система выбирается из выпадающего списка Reference Coordinate System (опорная система координат) линейки инструментов. Активная система координат управляет каждым действием, производимым через линейку инструментов (перемещение, вращение, изменение масштаба, зеркальное отображение, массив и выравнивание).
Pivot Point (точка вращения) определяет начало координат и ориентацию локальных осей объекта и, таким образом, его локальную систему координат. Точка вращения задает ориентацию локальной системы координат объекта и точку, вокруг которой трансформируется объект. Поэтому точка вращения имеет важное значение для анимации. Точка вращения часто является местом расположения по умолчанию центров гизмо. Если точка вращения не перекрыта глобальным параметром Local Center During Animation (локальный центр во время анимации), она используется в качестве позиции для анимированной трансформации объекта. Перемещение или переориенация точки вращения объекта выполняется с панели Hierarchy (иерархия). Несмотря на то, что при этом вы получаете управление над локальной системой координат объекта, ограничивающая рамка не переориентируется.
3D Studio MAX обеспечивает несколько геометрических примитивов с параметрическими определениями. Хотя они часто используются сами по себе, они могут послужить строительными блоками для более сложных моделей. Поскольку в 3DS МАХ Software Developer Kit (набор разработчика программного обеспечения 3DS МАХ) все эти примитивы поставляются в виде исходного кода, они могут хорошо работать в качестве блоков программного построения, что помогает разработчику (и, возможно, вам) создавать совершенно новые классы объектов.
Наиболее скромные примитивы (коробки, цилиндры и трубы) можно рассматривать как запас сырья в виде брусков, стержней и труб, готового для обработки на наковальне кузнеца, металлообрабатывающем станке или в пламени стеклодува. Почти все, что создается из запаса сырья в реальном мире, можно сделать из этих основных примитивов при помощи модификаторов деформации 3DS МАХ. Посмотрите на объекты вокруг себя. Вы увидите, что практически все металлические изделия, валы и стеклянные изделия образованы из примитивов.
Коробки являются простейшими объектами (см. рис. 7.13), но они часто оказываются наиболее полезными. Обычно объекты коробок используются для быстрого определения плоскостей потолок/пол, а также стен. Коробки можно применять как быстрые инструменты для выравнивания и как часто используемые компоненты для пластинчатых объектов в булевых операциях. Коробки можно считать запасом сырья, готового для сгибания или скручивания.
Коробки являются единственными объектами кроме Hedra, которые не имеют опции сглаживания. Взамен каждой из шести сторон присваивается группа сглаживания. Это означает, что при искажении коробки, ее стороны остаются гладкими.
Цилиндры и трубы (полые цилиндры) можно создавать как параметрические объекты. Эти объекты являются общей начальной точкой для многих частей модели, поскольку они родственны запасу брусков и труб. При неоднородном масштабе и ограниченных деформациях эти простые формы можно сгибать, размалывать, вращать и сжимать во множестве общих объектов. Подобные простые формы легко заметить в окружающих нас изделиях. Сегментация, необходимая для цилиндров и труб (как и для всех круговых объектов), изменяется в соответствии с тем, насколь точно должны просматриваться их концы и какую роль играют эти объекты в рамках сцены.
На рисунке 7.14 показано как в зависимости от сегментации изменяется воспринимаемая округлость круговых объектов. Если концов нельзя увидеть, можно создавать минимум сторон; если профиль очевиден (что является общим случаем для внутренних частей труб), количество сегментов должно быть увеличено.
ПРИМЕЧАНИЕ
В случае обнаружения, что цилиндр, имеющий 200 сторон, недостаточно сглажен (что возможно для изображений с высокой разрешающей способностью или для очень больших объектов, образующих пустые дуги, проходящие через сцену) посредством лофтинга или вытягивания потребуется создать круги с большим числом сегментов и шагов.
Количество сегментов высоты для цилиндров и труб будет изменяться в зависимости от применения этих объектов. Чем более эти примитивы деформируются, тем больше сегментов требуется, чтобы они выглядели убедительно и были гладкими. Сегменты высоты влияют только на качество визуализации цилиндра в случае дальнейшей его деформации. Конечно, планирование этого не критично, поскольку сегментацию можно изменять позже. Планирование становится критичным, если вы собираетесь выполнить операцию, разрушающую стек объекта.
Конические объекты фактически очень похожи на цилиндры, потому что по существу конус является цилиндром с концами разных размеров. Конусы часто используются для создания общих форм, что во многом напоминает цилиндры, однако их два радиуса обеспечивают возможность помещения результирующего объекта в управляемый конус в любое время. Другим общим вариантом применения являются основные пирамидальные формы, показанные на рисунке 7.15. На практике если требуется параметрическое управление верхним и нижним радиусом, конус одевается поверх цилиндра.
Объекты конуса всегда имеют два конца - нельзя уничтожить грани в остром кончике конуса. Сначала может показаться, что тратить грани для конусов с кончиками нулевого радиуса - пустое занятие, однако эта характеристика весьма полезна. Дополнительный набор граней на кончике конуса обеспечивает сглаживание сторон конуса только с прилегающими сторонами. Если стороны совместно используют одну вершину на кончике конуса, все грани сторон совместно используют одну группу сглаживания. При этом достигается эффект сглаживания кончика конуса так, как если бы он был сферическим (см. рис. 7.16).
Объект конуса усиливает характеристику сглаживания 3D Studio MAX. Поскольку алгоритм сглаживания Renderer пытается аппроксимировать сферу, "сглаженные" стороны кажутся в некоторой степени фасеточными, если они конусно сходятся в острую точку, что очень типично для конуса. Для повышения визуализиро-ванной гладкости конуса необходимо увеличивать его сегментацию, что уменьшает средний угол между гранями. На рисунке 7.17 показано результирующее сглаживание конусов с различными сегментами высоты.
Параметрические объекты Sphere (сферы) и GeoSphere (геосферы) представляют различные способы определения сферических объемов и вместе обеспечивают четыре различных геометрии типа сферы и купола (оболочки) (см. рис. 7.18). Базовый объект Sphere создает квадратичные секции, похожие на линии долготы и широты глобуса. Геосфера создает треугольные секции, подобно геодезическим куполам.
Опции Tetra (четырех), Octa (восьми) и Icosa (двадцати) создают треугольные грани, но организуют свою геометрию различными способами. Сфера Icosahedron (двадцатигранник) является классической конструкцией геодезического купола, образующей пятиугольники из треугольников в критических точках. В противоположность этому, Octahedron (восьмигранник) и Tetrahedron (четырехгранник) в аналогичных соединениях образуют квадраты и равносторонние треугольники.
Геосферы оказываются более эффективными в использовании, обеспечивая самый гладкий профиль при наименьшем числе граней. Объект Sphere является простейшим для разрезания на пластины и обычно является выбором, когда требуется взаимодействовать с другими прямоугольными объектами. При вырезании из сферы кусков в качестве булевых операндов, вероятно, более предпочтительно использовать Sphere, нежели GeoSphere. Для отдельных объектов, в особенности для куполов, скорее всего, подойдут объекты GeoSphere.
Объекты Torus (тор) часто называют пончиками, шинами или кольцами. Хотя тор выглядит просто, этот объект имеет ряд интересных параметров. На рисунке 7.19 показано как параметр Twist скручивает радиальные линии (стороны), которые образуют спираль вокруг тора, а параметр Rotation вращает поперечные сечения (сегменты). Эффект параметра Twist полностью очевиден в неподвижном изображении, эффект же параметра Rotation лучше всего виден в анимации.
ПРИМЕЧАНИЕ
Поскольку Twist имеет определенную начальную точку, в начале скручивания будет существовать некоторое сжатие, если при скручивании не делается полный оборот с целью совпадения начальной и конечной точек. Если опция Slice не активизирована для вставки разрыва в этой точке, во избежание сжатия следует использовать значения Twist с инкрементами 360.
Объекты Hedra (ежик) и Teapot (чайник) служат в качестве намека на то, что можно делать с объектами 3DS MAX. Hedra обеспечивает неограниченные перестановки, a Teapot является примером сложного параметрического объекта, состоящего из частей (см. рис.7.22 далее в главе).
Можно ожидать появление множества других параметрических объектов попадающих под эти два класса. Деревья, растительность, ландшафты и тучи аналогичны Hedra, а двери, окна, стулья и даже наборы доспехов аналогичны Teapot.
Объект Hedra обеспечивает пять семейств Polyhedron (многогранник) со множеством управляющих параметров. Возможности этих параметров могут показаться бесконечными, и ввиду того, что над ними можно выполнять анимацию, они обеспечивают очень интересную геометрию (в особенности для систем моделирования частиц от независимых разработчиков, которые могут воспринимать объекты-ссылки в качестве частиц). На рисунке 7.20 показана часть того, что можно сделать с этим объектом; на рисунке 7.21 приведены диаграммы определяющих параметров.
Объект Teapot - это классика компьютерной графики. Известный в промышленности как "чайник из Юты", он является одним из первых предметов, которые всегда визуализируются. Теперь чайник является пиктограммой для 3D-графики в целом (поскольку используется в качестве пиктограммы визуализации). Пусть это покажется смешным, но скромный чайник является совершенно бесценным для проверки материалов и модификаторов благодаря своим геометрическим вариациям и подходящим координатам распределения (см. рис. 7.23).
Поставляемые вместе с 3DS МАХ параметрические объекты представляют собой два основных геометрических класса, поскольку они могут все преобразовывать в треугольные каркасы и лоскуты Безье. С развитием 3DS МАХ и добавлением дополнительных геометрических классов способ, при помощи которого модификаторы взаимодействуют с геометрией, приобретает более важное значение. Архитектура 3DS МАХ может разместить любое геометрическое определение. В базовый продукт включены параметрические, каркасные, лоскутные объекты и объекты сплайнов.
ПРИМЕЧАНИЕ
Хотя в 3D Studio MAX непосредственно не входят объекты создания NURBS (Non-Uniform Rational B-Spline, неоднородные рациональные В-сплайны) или инструменты редактирования, она включает в себя класс объектов NURBS для пользователей 3DS МАХ SDK, разрабатывающих приложения. 4D Vision, разработчик 3DS МАХ, заявил о подключаемом элементе NURBS для 3DS МАХ, который называется "Sculptor" (скульптор). Этот подключаемый элемент обещает стать очень емким инструментом моделирования NURBS.
Модели 3DS МАХ основаны на геометрических классах. В общем случае объекты начинаются с высокого уровня и по мере необходимости преобразуют сами себя в более простые уровни. Параметрический объект можно преобразовать в лоскут, который затем преобразуется, например, в каркас из треугольных граней. Нерасширенная 3DS МАХ включает в себя следующие геометрические классы и связанные с ними инструменты:
Геометрические классы
Возможные инструменты редактирования
Параметрические объекты
Только манипуляция базовыми параметрами (можно преобразовать в лоскуты или в каркасы)
Сплайновые объекты
EditSpline (отредактировать сплайн), Extrude (вытянуть), Bevel (фаска), Lathe (вращать) и т. д. (Можно преобразовать в каркасы или лоскуты посредством других модификаторов)
Поверхности из лоскутов Безье
EditPatch (отредактировать лоскут), Extrude, Bevel, Lathe и т. д. (можно преобразовать в каркасы)
Каркасные объекты
EditableMesh (редактируемый каркас), EditMesh (отредактировать каркас), MeshSmooth (сгладить каркас). Optimize (оптимизировать) и т. д. (базовый класс каркасов или можно подразделить на лоскуты)
Геометрический класс определяет способы отображения и редактирования производного объекта. В настоящее время 3D Studio MAX поставляется всего с четырьмя классами; однако разработчики достаточно быстро добавляют заказные классы. Поэтому понимание эволюции геометрии имеет важное значение для моделирования.
По умолчанию примитивы 3DS МАХ преобразуются в каркасы при редактировании их модификаторами. Те же примитивы могут работать как лоскуты, если сразу после создания параметров применить модификатор EditPatch. Поэтому EditPatch является первым модификатором в стеке. Помните, что позже можно вернуться назад и вставить модификатор EditPatch после других примененных модификаторов. Рисунок 7.24 демонстрирует, что объекты Box, Cylinder, Tube, Cone, Torus и Teapot преобразуются в квадратные лоскуты, объекты Sphere - в треугольные лоскуты, а каждая грань объектов Hedra и GeoSphere преобразуется в треугольные лоскуты.
К сожалению параметры разбиения на пластины для примитивов игнорируются при добавлении модификатора EditPatch непосредственно после создания параметров в стеке. Если требуется отредактировать объект посредством опций разбиения на пластины, необходимо поместить модификатор, который сначала преобразует его в каркас (например, модификатор XForm), а затем применить модификатор EditPatch для работы с интерполированными лоскутами.
СОВЕТ
При добавлении модификатора EditPatch для преобразования примитивов в лоскуты лучше всего сразу же выключить состояние выборки Sub-Object, если необходимо применить модификаторы ко всему объекту. Модификаторы Edit всегда начинаются в состоянии выборки Sub-Object. Если перейти непосредственно к добавлению дополнительного модификатора, эффект нельзя будет увидеть, поскольку стек не показывает объект, а скорее пустой набор выборки. Перед тем, как можно будет увидеть эффект другого модификатора в стеке, необходимо взять объект вне выборки Sub-Object (или выбрать что-либо).
Лоскутные объекты по сравнению с каркасными объектами реагируют на модификаторы по-другому. На рисунке 7.25 показано, что результирующие кривые деформированных лоскутов поверхности являются более неуловимыми, чем в случае, при котором тот же самый объект деформируется как каркас. Это происходит ввиду того, что вершины каркаса являются явными, в то время как лоскут представляет собой результат решения уравнения.
Обычно при работе с объектами как с лоскутами люди, занимающиеся моделированием, хотят сохранить геометрию лоскутов как можно дольше. При этом знание того, когда операция заставит геометрию преобразоваться из лоскутов в грани, приобретает очень важное значение. Следующие модификаторы всегда преобразуют геометрию в грани: EditMesh (отредактировать каркас), Material (материал), Normal (нормальный), Smooth (сгладить), VolSelect (выбор объема), MeshSmooth (сгладить каркас) и Relax (ослабить).
Понять геометрические классы гораздо проще, если представить себе совершенно новый класс. В целях последующего рассмотрения назовем его классом FOO. Сначала необходимо решить как определяется класс FOO или из чего он состоит. Каркасные объекты 3DS МАХ состоят из граней, построенных на вершинах с ребрами, в то время как объекты с лоскутами Безье состоят из лоскутов с вершинами управления и тангенциальными ручками. Класс FOO может состоять из чего угодно. Он может иметь узлы, несущественные детали, ручки, кривые, меридианы, контуры, сетки, решетки и прочее. Для целей рассмотрения будем говорить, что объекты FOO имеют "сетки", состоящие из "контуров".
Чтобы быть видимым в видовом окне и, в конце концов, визуализированным, объект FOO должен знать как преобразовать геометрию класса FOO в элементы каркаса (или, точнее, в TriFaceMesh). Фактически каждый объектный класс 3D Studio MAX должен иметь возможность преобразования в каркас с треугольными элементами. Это требование определяет общий знаменатель для всех модификаторов для возврата в такое состояние, при котором каждый модификатор сможет работать на любом объекте. Следующий вопрос заключается в определении, подходит ли геометрия FOO для преобразования в лоскуты Безье или, может быть, в дополнение от независимых разработчиков. С этого момента мы будем говорить, что объект FOO можно преобразовать только в грани.
Класс FOO добавляется к меню создания и появляется возможность создания объектов FOO. Но как редактировать их после создания? Выбрав объект FOO, необходимо перейти к панели Modifier. Появляются только инструменты, моделирующие объект FOO. Поскольку в элементы каркаса можно преобразовать каждый геометрический класс, несколько модификаторов, подобных Bend, Taper, Twist и EditMesh, доступны. EditSpline, Extrude и Lathe, работающие только на сплайнах, приобретают серый цвет (т.е. недоступны). Модификатор EditPatch также приобретает серый цвет, поскольку объекты FOO нельзя преобразовать в лоскуты Безье. В случае применения модификатора Bend, последний просматривает геометрию в конце конвейера и не зная, что такое FOO, запрашивает лоскуты. FOO отвечает, что его нельзя преобразовать в лоскуты, поэтому Bend запрашивает элементы каркаса. Объект FOO преобразуется в каркасный объект с треугольными элементами, после чего инструмент Bend продолжает свою обычную работу. После изгиба модификатор EditPatch теряет серый цвет и становится доступным для использования. Это связано с тем, что каркасный класс 3D Studio MAX знает как выполнять преобразование в лоскуты Безье.
Если необходимо отредактировать объект FOO в его собственной манере, текущая опция должна перейти в нижнюю часть стека Edit History (история редактирования) и уточнить параметры FOO. При этом требуются модификаторы, умеющие манипулировать геометрией FOO. Для редактирования FOO необходимы инструменты редактирования FOO. Создается класс модификаторов FOO, сохраняющий и модифицирующий собственные сетки и контуры FOO. Ввиду исключительной полезности основных осевых деформаций команды Bend, Taper, Twist, Skew и Stretch модифицируются так, чтобы они также могли воспринимать и манипулировать классом FOO. Теперь после сгибания объекта FOO он сохраняет геометрию FOO и модификатор EditFOO по-прежнему существует после применения Bend. В этой точке нужно применить EditMesh и геометрия станет каркасом.
Реальной возможностью мог бы стать новый объект NURBS, который легко преобразовать в лоскуты Безье и элементы каркаса. До тех пор, пока вы работаете с новыми инструментами моделирования NURBS, модель остается в виде NURBS. В случае применения основного модификатора (который ничего не знает о NURBS) модель преобразуется в лоскуты и при необходимости - в грани. То же самое применимо для сплошных объектов и многоугольного моделирования.
Независимо от того, является ли объект новым или существующим, система для представления его геометрического класса одинакова. Во время применения модификатора к объекту модификатор находит, что геометрический класс объекта может представить себя самостоятельно и работает на наиболее возможном высоком уровне. Если модификатор понимает текущий геометрический класс, преобразование не происходит - модификатор просто оказывает требуемое влияние на модель. Если текущая геометрия является классом, не воспринимаемым модификатором, последний преобразует его в более простой класс, которым может манипулировать, и затем продолжает работу.
После добавлений разработчиков возможная геометрическая иерархия может выглядеть следующим образом:
Геометрический класс
Возможные инструменты редактирования
Параметрические объекты
Манипуляция базовыми параметрами (возможно преобразование во все, что угодно)
Сплошные объекты
EditSolid, Fillet и т. д. (возможно преобразование в NURB)
Поверхности NURB
EditNURB, Trim и т. д. (возможно преобразование в Patch)
Лоскутные поверхности Безье
EditPatch, Blend и т. д. (возможно преобразование в Polygon)
Многоугольные грани
EditPoly и т. д. (возможно преобразование в Quad)
Четырехугольные грани
EditQuad, GameOut и т. д. (возможно преобразование в Triangles)
Треугольные грани
EditMesh, Optimize и т. д. (нижний класс)
Геометрия в 3DS МАХ развивается в соответствии с требованиями. Объекты сохраняют самый высокий порядок до тех пор, пока не потребуется преобразование в более низкий, более простой класс. Геометрия высокого порядка сама себя преобразует в более простую геометрию, если применяется модификатор, который не может работать на данном геометрическом классе. Общим знаменателем для всех объектов является треугольный элемент каркаса. Поскольку все объекты 3D Studio MAX должны иметь возможность преобразования в соответствии с этими потребностями, все модификаторы могут работать на любом заданном объекте - хотя для этого они могли бы преобразовать его в элементы каркаса. Большинство модификаторов 3DS МАХ умеют обрабатывать элементы каркаса или лоскуты, сохраняя все, что попадется им под руку, и проходя через результат модификации заданного геометрического класса.
Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!