Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по 3D №2.doc
Скачиваний:
14
Добавлен:
27.08.2019
Размер:
24.12 Mб
Скачать

Основы сеточного моделирования.

 3D Studio MAX поддерживает много различных вариантов создания моделей (то есть моделирования). В их числе и сеточное моделирование, представляющее собой моделирование на уровне подобъектов: вершин, ребер, граней и полигонов. Подобъекты можно вытягивать, масштабировать, вращать, деформировать, удалять, объединять, добавлять; можно применять к ним множество других операций, изменяя таким образом исходный объект до полной неузнаваемости. Результатом подобных манипуляций могут быть совершенно разные трехмерные тела — от абстрактных объектов до полностью реальных моделей. Данный прием моделирования может быть применен к разным объектам 3D Studio MAX, однако пока мы знакомы лишь с примитивами, поэтому и приемы сеточного моделирования будем осваивать именно на них.

Любой параметрический трехмерный объект, созданный на основе примитива, может быть преобразован в объект типа Editable Mesh (Редактируемая сетка) или Editable Poly (Редактируемая полисетка). Такой объект перестает быть параметрическим и в дальнейшем будет модифицироваться как сетка, то есть на уровне вершин, ребер, граней и полигонов.

К объектам типа Editable Mesh относятся геометрические модели трехмерных тел, представленных оболочками в виде сеток с треугольными ячейками. Объекты типа Editable Poly отличаются от редактируемых сеток тем, что их оболочки состоят не из треугольных граней, а из полигонов. Полигоны представляют собой многоугольники, у которых имеются как минимум четыре вершины, и заменяют совокупность двух или более смежных треугольных граней, лежащих в одной плоскости. Поэтому и сетку, составленную из полигонов, в отличие от сетки, составленной из треугольных граней, называют полигональной сеткой, или полисеткой.

Многие возможности редактирования объектов Editable Poly и Editable Mesh аналогичны, однако имеются и различия. Редактирование объектов типа Editable Mesh возможно на уровне вершин, ребер, граней, полигонов и элементов, а тип Editable Poly позволяет работать с вершинами, ребрами, полигонами, элементами и границами. Многие операции на первый взгляд совершенно аналогичны для обоих типов объектов, например операции Extrude и Bevel, но требуют разной настройки и зачастую приводят к различным результатам. Напомним, что модификаторы предназначены для модификации объектов и становятся доступными после активизации панели Modify (Изменение).

Мы будем разбирать возможности моделирования объектов в Editable Poly, т. к. здесь у нас появляется немного больше возможностей.

Типы подобъектов.

Как уже было сказано, значительная часть объектов 3D Studio MAX может быть представлена в виде сеток, состоящих из однотипных элементов или подобъектов, к числу которых относятся вершины, ребра, грани и полигоны (рис. 1). Предназначенные для работы с ними средства скомпонованы по уровням: Vertex, Edge, Face, Polygon, Element и Border (рис. 2 и 3).

 

Рис. 1. Подобъекты

Рис. 2. Уровни Editable Mesh Рис. 3. Уровни Editable Poly

Вершины — это точки, в которых сходится и соединяется друг с другом любое число ребер. Для работы с вершинами предназначен уровень Vertex (Вершина).

Ребра — это линии границы грани. Ребра могут быть видимыми, если соседние грани не лежат в одной плоскости (тогда они отображаются сплошными линиями), или невидимыми; по запросу пользователя невидимые ребра могут отображаться пунктирной линией. За управление видимостью и положением ребер отвечает уровень Edge (Ребро).

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

Смежные грани, лежащие в одной плоскости, могут быть объединены в многоугольники-полигоны. В случае преобразования объекта к типу Editable Poly процесс формирования полигонов из граней осуществляется автоматически. В обычной сетке полигон — это просто подобъект, позволяющий выделить сразу все смежные грани, лежащие в одной плоскости. У полигональной сетки нет таких подобъектов, как грани, и вся она состоит только из полигонов, причем некоторые полигоны могут быть и треугольными. За работу с полигонами отвечает уровень Polygon (Многоугольник).

Кроме того, сеточные объекты могут редактироваться на уровне Element (Элемент), который используется для работы с группами граней, объединенными в элемент каркаса, а объекты типа Editable Poly — и на уровне Border (Граница), что удобно, например, при вдавливании границ.

Редактирование сетчатых объектов можно производить как на уровне объекта в целом, так и на уровне подобъектов: граней, ребер или вершин. Чтобы объект стал редактируемым на уровне подобъектов и превратился в редактируемую сетку, необходимо выделить его и выбрать из контекстного меню команду ПКМ => Convert to => Convert to Editable Poly (Конвертировать => Конвертировать в режим редактирования полисетки). В обоих случаях это приведет к появлению на панели Modify целой серии свитков:

  1. Раздел Selection (Выделение) — отвечает за включение нужного подобъектного уровня и управление режимами выделения подобъектов. При работе с разными подобъектами доступны определенные команды этого раздела:

- Ignor Back Facingне выделять заднюю сторону.

- Ringвыделяет все ребра по

окружности, работают на уровнях

- Loopвыделяет все последова- Edge и Border

тельно расположенные ребра,

- Shrinkсжатие области выделения,

- Grow- расширение области выделения.

- By Angle работает на уровне полигонов, помогает выделять полигоны по окружности.

  1. Раздел Soft Selection (Мягкое выделение) — позволяет распространить влияние преобразований перемещения, поворота или масштаба выделенных вершин или иных подобъектов на прилегающую область с плавным уменьшением «весов» вершин от центра к периферии выделенной области;

 Для выделения области сетчатой оболочки с нерезкими границами установите флажок Use Soft Selection (Использовать мягкое выделение).

Edge Distance (Расстояние в ребрах) – ограничивает размер области влияния путем задания в счетчике справа числа ребер, разделяющих преобразуемый подобъект и остальные подобъекты сетки.

Affect Backfacing (Включать изнаночные) – в состав выделяемой области будут включаться подобъекты изнаночной стороны.

Крутизна спада весовых коэффициентов подобъектов от центра к краям выделенной области регулируется с помощью трех счетчиков:

Falloff (Спад) - задает расстояние от центра до наружного края выделенной области,

Pinch (Сужение) – определяет форму кривой в районе пика,

Bubble (Выпуклость) – влияет на крутизну спада кривой на краях.

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

Включая режим Lock Soft Selection (видимое мягкое выделение), появляются дополнительные возможности мягкого выделения подобъектов путем рисования:

Paint (рисование) – включаем режим выделения областей путем рисования,

Blur – добавление подобъектов к выделенной области,

Revert – удаление подобъектов из выделенной области.

Настройки для «кисти»:

Selection Value (объем выделения) – чем больше к 1, тем больше красных точек в выделяемой области.

Brush Size (Размер кисти) – размер минимальной области выделения при выделении данным способом.

Brash Strength (Сила кисти) - чем больше к 1, тем больше красных точек в выделяемой области. Похож на параметр Selection Value.

Красные точки трансформируются с большей силой (например при перемещении вершин вверх – красные перемещаются на большую высоту, темно-синие – на меньшую, точки промежуточных цветов перемещаются соответственно своему цвету).

Brush Options (Параметры кисти) – расширенные возможности настройки параметров кисти. Здесь также можно настроить размер и силу воздействия кисти, а основное, что можно здесь настроить - это профиль выделения. Настройка его осуществляется путем создания кривой определенной формы. Можно выбрать форму кривой из имеющихся вариантов или создать свою путем добавления и перемещения вершин кривой.

  1. Раздел Edit Geometry (Редактировать геометрию) — содержит основные инструменты изменения геометрии подобъектов. Некоторые инструменты одинаковы для всех уровней и для обоих типов сеток, а другие являются особыми для каждого уровня (и/или сетки). В перечень общих инструментов входят, в частности, следующие:

- Create (Создать) – создание нового подобъекта (для вершин – просто щелчком, для полигонов – по краевым точкам, для ребер – по точкам в пределах полигонов лежащих в одной плоскости).

- Collapse (Свести в точку) — выполняет коллапс (сжатие) и объединение всех вершин выбранных подобъектов в одну, располагая ее в геометрическом центре выделенной области;

- Attach (Присоединить) — позволяет добавлять к редактируемой модели новые каркасные объекты, при этом все грани присоединяемого объекта оказываются объединенными в новый элемент,

- Detach (Отсоединить) — отвечает за отделение выбранного подобъекта в отдельный элемент или новый объект,

- Slice Plane (Режущая плоскость) – в режиме подобъекта – Poligon позволяет разрезать полигон (или несколько выбранных полигонов) на части при помощи режущей плоскости. Кнопками перемещения и вращения устанавливаем место расположения режущей плоскости и нажимаем кнопку Slice.

- Quick Slice (Быстрое разрезание) – разрезание полигонов осуществляется с помощью линии, она разрезает те полигоны, которые пересекает. При этом плоскость расположения полигонов не важна, разрез осуществляется по проекции данной линии на полигон.

- Сut (Резать) – позволяет резать полигоны путем построения дополнительных ребер.

- Mesh Smooth (Сглаживание) - сглаживание выбранных подобъектов с автоматическим делением их на дополнительные полигоны.

- Tessellate (Разбить) – Разбиение выбранных полигонов на более мелкие.

Для выравнивания всех вершин сетки (или вершин, относящихся к выделенным подобъектам при работе на уровнях подобъектов) используем кнопки:

- View Align (Ориентировать по текущему виду) – нормали вершин выравниваются относительно плоскости активного окна проекции.

- Grid Align (Ориентировать по сетке) — нормали выравниваются относительно конструкционной плоскости (плоскости объекта-сетки). При выравнивании нужно правильно выбрать ортогональный вид, плоскость которого совпадает с плоскостью объекта-сетки.

- Make Planar (Привести к плоскости) — устанавливает плоскостную ориентацию для выбранных подобъектов по осям x, y, z.

- Relax (Расслабление) - расслабление (сглаживание) геометрии выделенной области полигонального объекта.

Команды скрытия/показа частей полигонального объекта:

- Hide Selected – скрыть выделенные,

- Unhide All – показать все,

- Hide Unselected – скрыть невыделенные.

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

- Delete Isolated Vertices (Удалить изолированные вершины) — позволяет удалять вершины, лежащие вне ребер объекта, полезная вещь, т.к. отдельно лежащие вершины формируют ненужные загибы поверхности.

Моделирование при помощи вершин.

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

При переходе на уровень подобъекта Vertex (Вершина) на панели Modify (Изменить) появляются свитки Edit Vertices (Правка вершин) и Vertex Properties (Свойства вершин).

Удаление вершин можно осуществлять с помощью кнопки Delete, но при этом удаляются полигоны, примыкающие к данной вершине.

- Remove – удаление выделенной вершины без разрыва поверхности,

Щелчок на кнопке Remove Isolated Vertices (Удалить изолированные вершины) удаляет любые вершины, которые не принадлежат ни одному полигону сетки.

- Break (Разбить) – разрыв поверхности в области выбранной вершины. Данная функция позволяет отделить углы граней друг от друга и развести их в стороны,

Выдавливание вершин.

- Extrude (Выдавить) – подъем (выдавливание) вершины на определенную высоту.

При выдавливании вершины формируются новые ребра и грани, так что результат имеет форму пирамиды. Задайте высоту выдавливания в счетчике Extrusion Height (Высота выдавливания) и ширину основания выдавливаемых пирамидок в счетчике Extrusion Base Width (Ширина базы выдавливания). Щелкните на кнопке Apply (Применить), чтобы применить

настройки и продолжить выдавливание, или OK, чтобы применить настройки и закрыть окно, Cancel (Отмена) – отменяет операцию выдавливания.

Слияние вершин.

Для слияния вершин полисетки выделите их и щелкните на кнопке Weld (Слить). Появиться окно Weld Vertices (Слияние вершин), в котором имеется счетчик Weld Threshold (Порог Слияния). Меняйте значение в счетчике, наблюдая за сеткой в окнах проекций, а также за показаниями в текстовом поле Number of Vertices (Число вершин) в разделе Selection, где в итоге слияния количество вершин уменьшится.

Кнопка Target Weld (Слить с указаной) позволяет слить некоторую вершину с одной из соседних вершин, то есть таких, которые расположены на концах ребер, исходящих из данной вершины.

Щелкните на кнопке Target Weld, затем щелкните на любой вершине полисетки. Переместите курсор, за которым тянется пунктирная линия. Над вершинами, допускающими слияние, курсор будет принимать вид крестика. Щелкните на выбранной вершине, при этом первая вершина переместится в точку второй и сольется с ней.

Срезание вершин сетки.

Кнопка Chamfer (Срез) позволяет выполнять срез вершин. В диалоговом окне этой команды один параметр Chamfer Amount (Величина среза).

Соединение вершин.

Кнопка Connect (Соединить) позволяет соединить пару выделенных диагональных вершин полигона ребром. Выделите пару вершин, щелкните на кнопке Connect, и между выбранными вершинами появится новое соединяющее ребро. При этом новое ребро не может пересечь ни одного из имеющихся ребер. Это следует учитывать, выбирая пары вершин для соединения.

Чтобы соединить пару вершин, пересекая имеющиеся ребра, используйте кнопку Cut (Разрезать).

Настройка весов вершины.

Изменяя веса вершин можно влиять на результаты сглаживания полигонального объекта после применения модификаторов сглаживания. Исходно веса всех вершин устанавливаются равными 1. Увеличение веса какой-то вершины исходной сетки ведет к тому, что при сглаживании сетка притягивается к этой вершине.

В разделе Subdivision Surface включаем функцию Use NURMS Subdivision, после чего вокруг полигонального объекта появляется сетка сглаживания, при помощи которой мы видим примерное изменение формы после изменения весов вершин. Чтобы изменить вес вершины, нужно выделить ее и в разделе Edit Vertices увеличить параметр Weight (Вес).

В данном случае увеличен вес у угловых вершин параллелепипеда.

Моделирование при помощи ребер.

Удаление ребер.

- Remove – удаление выделенного ребра без разрыва поверхности,

Расщепление сетки вдоль заданных ребер.

- Split (Расщеплять) – расщепляет сетку по периметру выделенных ребер, образующих замкнутое кольцо. Если выделено одно ребро, то ничего не произойдет.

Выдавливание ребер.

- Extrude (Выдавить) – выдавливание ребра на определенную высоту. Выдавливание может производиться как в интерактивном режиме, так и с помощью окна численного ввода параметров, где задаем высоту выдавливания (Extrusion Height) и ширину базы выдавливания (Extrusion Base Width) (как и для вершин).

- Слить ребра можно с помощью кнопки Weld, регулируя счетчик Weld Threshhold. Также можно использовать кнопку Target Weld.

- Срез ребра осуществляем с помощью кнопки Chamfer (Срез).

- Соединение ребер мостиком .

Функция Bridge (Мост) соединяет ребра, находящиеся на расстоянии друг от друга, выстраивая между ними некое подобие мостика. Функция работает только с краевыми ребрами. Существует 2 способа ее применения:

  1. Выделяем четное число ребер и щелкаем на кнопке Bridge, между ребрами сразу строится мост.

  2. Нажимаем кнопку Bridge, и в открывшемся окне кнопками Pick Edge1 и Pick Edge2 выбираем ребра для создания моста.

- Соединение ребер заданным числом новых ребер.

Кнопка Connect (Соединение) позволяет соединить 2 ребра заданным количеством ребер. По умолчнию строится одно новое ребро, проходящее через средние точки выделенных ребер.

В диалоговом окне функции Connect можно задать число новых ребер в счетчике Segments.

-Настройка веса ребер.

Для настройки служит 2 счетчика:

- Weight (Вес) – позволяет задавать вес выделенных ребер, к которым при сглаживании

будет притягиваться сетка.

- Crease (Складка) – определяет, будет ли возникать перегиб сглаженной сетки относительно выделенных ребер. При значении 0 сетка сглаживается относительно ребра, а при значении 1 возникает перегиб – складка.

- Настройка триангуляции.

Кнопка Edit Triangulation (Правка триангуляции) – позволяет вручную выполнять разбиение полигонов сетки на треугольные грани.

Работа с подобъектами Border (границы отверстий).

Команды Extrude (Выдавливание), Chamfer (Срез), Bridge (Мост) Connect (Соединение) такие же как и в режиме работы с ребрами.

- Insert Vertex (Вставить вершину) – вставка вершины в ребра границы отверстия. Щелкните на кнопке, после чего щелкайте в нужных местах ребер границы.

- Накрытие отверстий.

При редактировании полигональной сетки на уровне границ добавляется возможность выполнять накрытие отверстий в сетке, края которых и образуют подобъекты Border (Граница). Для этого следует выделить нужную границу или границы и щелкнуть на кнопке Cap (Накрыть).

Моделирование на уровне полигонов.

Переключитесь в режим редактирования полигонов, щелкнув на кнопке Polygon (Многоугольник) в свитке Selection. Многоугольники при желании можно перемещать, поворачивать и масштабировать обычным способом. Кроме того, здесь возможно множество других интересных преобразований, доступных из свитка Edit Polygons панели Modify.

- Рассмотрим операцию Extrude (Выдавливание), при помощи которой можно создавать выпуклые элементы объекта. Щелкните на кнопке Extrude, и кликните на любом полигоне редактируемого объекта (при этом полигон выделится, а внешний вид указателя мыши изменится) и переместите его — в зависимости от направления перемещения выбранных граней на их основе будет создан выпуклый или вогнутый фрагмент объекта. Также в диалоговом окне можно задавать числовое значение выдавливания.

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

Результат применения Extrude к одному и всем полигонам

Переключатели Extrusion Type (тип выдавливания) имеют 3 положения:

- Group (Групповой) – каждая неразрывная группа выделенных полигонов будет выдавлена как одно целое в направлении усредненной нормали (срединной оси) этой группы полигонов.

- Local Normal (По локальным нормалям) – выдавливание каждого полигона будет происходить

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

- By Polygon (По полигонам) – при выдавливании группы смежных полигонов каждый из них будет выдавливаться отдельно от остальных.

Group Local Normal By Polygon

Особо стоит сказать о сглаживании подобъектов.

Как уже было отмечено, объекты, представленные в виде полигональных сеток, могут сглаживаться применением модификатора TorboSmooth (Сглаживание сетки) — довольно часто его может заменить операция MSmooth (Сглаживание) из свитка Edit Geometry (Редактировать геометрию). Попробуйте применить ее, например, к ранее модифицированной геосфере, установив коэффициент сглаживания равным 10 .

 

  • Выдавливание со скосом.

Bevel (Выдавливание со сжатием) – одновременно можно выдавить и расширить/сузить полигон. Переключатели Bevel Type аналогичны переключателям Extrusion Type.

- Outline (Контур) – позволяет уменьшить или увеличить размер ребер, образующих внешнюю границу группы смежных полигонов (или одного полигона). При этом размер всех полигонов, лежащих внутри этой границы, не меняется, что отличает эту операцию от простого масштабирования.

Простое масштабирование полигонов Применение Outline

- Insert (Врезка) – создает внутри выделенного полигона (полигонов) уменьшенный дубликат цепочки ребер, образующих внешнюю границу полигона.

Group By Polygon

- Flip (Перевернуть) – меняет ориентацию выделенных полигонов на противоположную (переворачивает полигоны).

- Bridge (Мост) – соединяет полигоны, находящиеся на расстоянии друг от друга, выстраивая между ними подобие моста.

Операция Bridge с полигонами работает так же как с ребрами двумя способами: или сначала выделяем четное число ребер и щелкаем на кнопке Bridge или нажимаем кнопку Bridge, и в открывшемся окне кнопками Pick Edge1 и Pick Edge2 выбираем ребра для создания моста.

 Параметры Twist1 и Twist2 (Скрутка) дают возможность формировать мостики с разной

степенью скручивания.

 Параметр Taper (Заострение) – определяет степень уменьшения или увеличения ширины

моста по направлению к центру.

 Параметр Bias (Смещение) – позволяет сместить положение самого узкого или широкого

места моста.

 Параметр Smooth (Cглаживание) обеспечивает сглаживание моста.

- Команда Hinge From Edge (Поворот на ребре) – позволяет повернуть выделенный полигон вокруг любого из ребер (как будто он подвешен к ребру наподобие двери) при этом между остальными ребрами поворачиваемого полигона и неподвижной частью сетки формируются новые грани. При повороте прямоугольного полигона формируются сегменты цилиндра.

В диалоговом окне Hinge Polygons From Edge кнопкой Pick Hinge выбираем ребро, вокруг которого будем вращать полигон, в счетчике Angle выставляем угол поворота, в счетчике Segments - количество сегментов образующегося сектора. Apply – применить операцию и можно тут же продолжать, OK – применить и закончить операцию, Cancel – отменить операцию.

- Extrude Along Spling (Выдавить вдоль сплайна) позволяет выдавить выделенный полигон или совокупность выделенных полигонов вдоль траектории предварительно созданного сплайна. При этом можно дополнительно обеспечить уменьшение или увеличение масштаба полигона по мере выдавливания, а также закрутить выдавленную форму винтом.

Pick Spline (Указать сплайн) – щелкните на этой кнопке, после чего щелкните на нужном

сплайне в окне проекции.

Segments (Сегменты) – задает число сегментов по длине тела выдавливания.

Taper Amount (Степень заострения) – задает степень заострения тела выдавливания вдоль

траектории.

Taper Curve (Кривая заострения) – задает степень кривизны боковых поверхностей тела

выдавливания.

Twist (Скрутка) – позволяет задать угол скручивания тела выдавливания вокруг пути выдавливания.

Align to face normal (Выровнять по нормали) – направление выдавливания будет

определяться не исходной ориентацией сплайна - пути, а его расположением

перпендикулярно плоскости выделенного сплайна.

Rotation (Поворот) – при установке флажка  Align to face normal в этом счетчике можно

задать угол поворота пути выдавливания вокруг нормали выделенного полигона.

- Щелчок на кнопке Retriangulate (Ретриангулировать) обеспечивает наилучшее разбиение выделенных полигонов на треугольные грани.

Практика. Ограненные кристаллы из геосферы

Создайте примитив GeoSphere, конвертируйте его в тип Editable Mesh и перейдите в режим редактирования вершин. Выделите все вершины выше центрального сечения (рис. 1) и сведите их в одну плоскость, щелкнув в свитке Edit Geometry на кнопке Make Planar (Привести к плоскости, рис. 2). Выделите все вершины, лежащие ниже центрального сечения (рис. 3), и сведите их в одну точку, щелкнув на кнопке Collapse (Свести в точку, рис.4). В итоге будет получен кристалл, представленный на рис. 5.

Рис. 1. Вершины, сводимые в плоскость Рис. 2. Результат сведения вершин в плоскость

Рис. 3. Выделение вершин, сводимых в точку Рис. 4. Результат сведения вершин в точку

Рис. 5. Ограненный кристалл

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

 

Практика. Шахматная пешка из цилиндра

Создайте цилиндр с параметрами, показанными на рисунке.

Преобразуйте объект к типу Editable Mesh и перейдите в режим редактирования вершин. Установив вариант выделения прямоугольных областей (Restangular Selection Region), выделите вершины самого нижнего сечения и немного перетащите их по оси Y вниз