Урок: Простое полигональное моделирование телевизора. Модификатор (Edit Poly). Полигональное моделирование в Maya

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

Другая точка зрения состоит в том, что в набор примитивов необходимо включить гладкие кривые различного рода (окружности, эллипсы, кривые Безье ), некоторые классы поверхностей и даже сплошные геометрические тела. В качестве трехмерных геометрических примитивов в таком случае предлагаются пространственные кривые, параллелепипеды, пирамиды, эллипсоиды. Но если такой расширенный набор примитивов связан с аппаратной реализацией, то возникает проблема перенесения программных приложений с одного компьютера на другой, поскольку такая аппаратная поддержка существует далеко не на всех графических станциях. Кроме того, при создании трехмерных геометрических примитивов программисты сталкиваются с проблемой их математического описания, а также разработки методов манипулирования такими объектами, поскольку те типы объектов, которые не попали в список базовых, надо уметь приближать с помощью этих примитивов.

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

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

Любая графическая библиотека определяет свой набор примитивов. Так, например, широко распространенная интерактивная система трехмерной графики OpenGL включает в список своих примитивов точки (вершины), отрезки, ломаные, многоугольники (среди которых особо выделяются треугольники и четырехугольники), полосы (группы треугольников или четырехугольников с общими вершинами) и шрифты. Кроме того, в нее входят и некоторые геометрические тела: сфера, цилиндр, конус и др.

Понятно, что для изображения таких примитивов должны быть разработаны эффективные и надежные алгоритмы, поскольку они являются конструктивными элементами. Исторически сложилось так, что первые дисплеи были векторными, поэтому базовым примитивом был отрезок . Но, как уже было отмечено в первой главе нашего курса, самая первая интерактивная программа Sketchpad А.Сазерленда в качестве одного из примитивов имела прямоугольник , после чего этот объект уже традиционно входил в различные графические библиотеки.

Здесь мы рассмотрим такие примитивы, как вершина , отрезок , воксель и модели, строящиеся на их основе, а также функциональные модели .

Для этих пространственных моделей используются в качестве примитивов вершины (точки в пространстве), отрезки прямых (векторы), из которых строятся полилинии , полигоны и полигональные поверхности . Главным элементом описания является вершина, все остальные являются производными. В трехмерной декартовой системе координаты вершины определяются своими координатами (x,y,z), линия задается двумя вершинами, полилиния представляет собой незамкнутую ломаную линию, полигон - замкнутую ломаную линию. Полигон моделирует плоский объект и может описывать плоскую грань объемного объекта. Несколько граней составляют этот объект в виде полигональной поверхности - многогранник или незамкнутую поверхность ("полигональная сетка").


Рис. 4.1.

В современной компьютерной графике векторно-полигональная модель является наиболее распространенной. Она применяется в системах автоматизированного проектирования, компьютерных играх, тренажерах, ГИС, САПР и т. д. Достоинства этой модели заключаются в следующем:

  • Удобство масштабирования объектов.
  • Небольшой объем данных для описания простых поверхностей.
  • Аппаратная поддержка многих операций.

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

  • Простое выполнение топологических операций; например, чтобы показать сечение пространственного тела, достаточно воксели сделать прозрачными.
  • К ее недостаткам относятся:

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

    Этот урок послужит хорошим стартом для тех, кто хочет научиться моделировать первоклассных персонажей. Знаменитый в своем круге Jahirul Amin расскажет о важности правильной топологии, равномерной сетки, важности четырехугольных полигонов и многое другое.

    Перед тем, как погружаться в 3D-омут, предлагаю устроить краткий ликбез и поплескаться на мелководье. Ниже мы затронем основы полигонального моделирования, без знания которых бессмысленно двигаться дальше.

    Введение

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

    3-х угольник vs 4-х угольник vs N-угольник

    Итак, в чем же разница между 3-, 4- и N-угольными полигонами? Ответ очевиден: у первого 3 стороны, у второго – 4, у третьего – любое их количество, большее 4-х. Если вы моделируете допустим персонажа для дальнейшей его анимации, то рекомендуют использовать только четырехугольники . Процесс деформирования и деления четырехугольных полигонов проходит гораздо проще, к тому же, вы столкнетесь с меньшим искажением текстуры.

    Треугольники рекомендуется прятать от своих и чужих глаз. Например, в местах подмышек или в паховой области персонажа. В свою очередь, на многоугольники наложен негласный запрет — их быть не должно. Они провоцируют искажение и доставляют немало хлопот, когда дело доходит до риггинга и редактирования групп вершин (оно же «weight-painting»).

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

    Радости четырех и трехугольных полигонов и ужас N-угольника

    Контуры лица, по определению напоминающие N-угольник, нужно максимально приблизить к четырехугольному формату. Мало того – расположение полигонов должно быть настолько равномерным, насколько это в принципе возможно . Вот, к чему призывает одноименная геометрия. Соблюдение этих правил облегчит прохождение стадии риггинга и поможет при деформировании персонажа в процессе анимации. Кроме того, уменьшится масштаб искажений, связанный с применением текстур, хотя здесь не стоит забывать о важности самой UV развертки.

    Для выполнения описанной задачи в Maya предусмотрен инструмент Sculpt Geometry.

    Инструмент Sculpt Geometry в Maya поможет «разгладить» сетку модели

    Отвечает за плавность перехода каждого отдельно взятого эджа (оно же Edge Flow). Звучит, может, и просто, но на практике это весьма коварная штука.

    Если вы задались целью создать реалистичного персонажа, перед началом работы рекомендуется изучить основы анатомии. Следуя за строением человеческого тела и естественным движением мышц, аниматор, в конечном счете, получает приближенную к оригиналу копию. Особенно чётко это прослеживается в процессе деформации. Советуем начать с процесса образования морщин и растягивания кожи.

    Для стилизованных и мультипликационных персонажей Edge Flow имеет куда меньшее значение. Но, всё же, я настоятельно рекомендую получить хотя бы базовое представление анатомии человека.

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

    Она же – немногообразность (non-manifold). Означает, что трёхмерный объект невозможно разрезать и превратить в плоским.

    Пример: создайте куб, выделите любое ребро (край) и выдавите его Edit Mesh > Extrude. Перед вами немногообразный объект. (Пример ниже слева) Если бы куб был изготовлен из бумаги, то при развёртывании вы бы получили крестообразную фигуру с нарушенными пропорциями. Использование подобного объекта в булиевых операциях (Boolean operation) практически невозможно.
    Чтобы исправить ситуацию, воспользуйтесь инструментом Cleanup.

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

    У каждой петли (ребра эджа) должна быть цель

    Как правило, моделирование начинается с примитивной фигуры (например, с куба), строение которой впоследствии усложняется путем добавлении петлей ребёр (edge loops).

    Важно, чтобы каждый новый элемент был создан с конкретной целью. Бывают ситуации, в которых «меньше» равно «лучше». Понимание принципов оптимизации модели приходит лишь с опытом, так что не расстраивайтесь и продолжайте работать.


    Не усложняйте себе жизнь: детализация должна быть целесообразной

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

    Присмотритесь к поверхности, ее структуре и тени. Как она отражает свет? Как происходит процесс деформации? Ответ на эти и другие вопросы поможет вам принять правильное решение при моделировании любого объекта.

    Max позволяет работать со следующими типами редактируемых поверхностей:
    • Editable Mesh (Редактируемая поверхность);
    • Editable Polу (Редактируемая полигональная поверхность);
    • Editable Patch (Редактируемая патч-поверхность);
    • NURBS Surface (NURBS-поверхность).

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

    В объектах типа Editable Mesh (Редактируемая поверхность) модель состоит из треугольных граней. Для работы с Editable Mesh (Редактируемая поверхность) можно использовать режимы редактирования Vertex ( Вершина ), Edge ( Ребро ), Face (Грань), Polygon (Полигон) и Element (Элемент).

    В объектах типа Editable Poly (Редактируемая полигональная поверхность) модель состоит из многоугольников. Для работы с такими объектами можно использовать режимы редактирования Vertex ( Вершина ), Edge ( Ребро ), Border (Граница), Polygon (Полигон) и Element (Элемент) ( рис. 6.1).


    Рис. 6.1.

    В объектах типа Editable Patch (Редактируемая патч -поверхность) модель состоит из лоскутов треугольной или четырехугольной формы, которые создаются сплайнами Безье. Особенность этого типа редактируемой поверхности - гибкость управления формой создаваемого объекта. Для работы с Editable Patch (Редактируемая патч -поверхность) можно использовать режимы редактирования Vertex ( Вершина ), Edge ( Ребро ), Patch ( Патч ), Element (Элемент) и Handle ( Вектор ).

    NURBS Surface (NURBS-поверхность) - это поверхность, построенная на NURBS-кривых. Этот метод создания поверхностей основан на неоднородных рациональных B-сплайнах (Non Uniform Rational B-Splines, NURBS). Чаще всего данный способ используется для моделирования органических объектов, анимации лица персонажей. Этот метод является самым сложным в освоении, но вместе с тем самым гибким.

    Преобразование объекта в редактируемую поверхность

    Практически любой объект 3ds Max можно преобразовать в один из этих типов поверхностей. Для этого правой кнопкой мыши вызовите контекстное меню , щелкните на пункте Convert To (Преобразовать) и в появившемся контекстном меню выберите один из типов.

    Еще один способ работы с редактируемыми поверхностями - назначение объектам соответствующих модификаторов: Edit Poly (Редактирование полигональной поверхности) для преобразования объекта в полигональную поверхность и Edit Mesh (Редактирование поверхности) для преобразования объекта в редактируемую поверхность. Использование модификаторов удобнее, чем конвертирование объекта в редактируемую поверхность, поскольку если результат вас не устроит, вы всегда сможете удалить модификатор и вернуться на этап работы, предшествующий его применению. А операция преобразования в редактируемую поверхность является необратимой. Кроме того, использовать модификаторы удобно потому, что их применение можно комбинировать с другими модификаторами.

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

    Главные инструменты полигонального моделирования

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

    Инструменты выделения

    Прежде чем сделать что-нибудь с объектом в 3ds Max, его обязательно нужно выделить. При работе с субобъектами действует тот же принцип. Для выполнения любых операций с субобъектами их нужно выделить, а уже затем применять разные инструменты. В 3ds Max есть набор удобных инструментов, которые заметно упрощают выделение субобъектов. Их можно найти в свитке Selection (Выделение).

    В верхней части свитка Selection (Выделение) есть значки для быстрого переключения между уровнями субобъектов ( рис. 6.2).


    Рис. 6.2.

    Инструменты Ring (По кругу) и Loop (Кольцо) можно использовать на уровнях редактирования субобъектов Edge (Ребро) и Border (Граница). Инструмент Ring (По кругу) дает возможность выделить субобъекты по периметру модели, а Loop (Кольцо) - те, которые расположены на одной линии с выделенными. Рядом с кнопками для вызова этих инструментов находятся небольшие кнопки в виде стрелок, при помощи которых можно перенести выделение на прилегающие области. Один щелчок на такой кнопке - и выделение смещается на одну границу или ребро.

    Инструменты Grow (Выращивать) и Shrink (Сокращать) также предназначены для выделения субобъектов. Они позволяют увеличить и уменьшить радиус выделения, соответственно. При нажатии кнопки Grow (Выращивать) к выделению добавляются субобъекты, которые примыкают к выделенным, а при щелчке на кнопке Shrink (Сокращать), наоборот, из выделения убираются крайние субобъекты.

    Еще один инструмент Ignore Backfacing (Игнорировать невидимые участки) также позволяет выделять субобъекты. Этот флажок нужно установить в том случае, если необходимо выделить только те области объектов, которые обращены к зрителю.

    При помощи переключателя, расположенного в группе настроек Preview Selection (Предварительный просмотр выделения), можно выполнять предпросмотр подобъектов перед выделением ( рис. 6.3).


    Рис. 6.3.

    При выборе положения переключателя Off (Выключено), которое установлено по умолчанию, вы не заметите никаких изменений. Если выбрать вариант SubObj (Подобъект), то вы сможете наблюдать за тем, какие подобъекты будут выделены, просто перемещая по ним курсор. Если удерживать при этом клавишу CTRL , можно выполнять предварительный просмотр выделения нескольких подобъектов одновременно.

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

    Плавное выделение

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

    Настройки плавного выделения находятся в свитке Soft Selection (Плавное выделение). Для включения этого режима установите флажок Use Soft Selection (Использовать плавное выделение). Расстояние, на которое распространяется воздействие в режиме Soft Selection (Плавное выделение), определяется параметром Falloff (Спад). Характер распространения воздействия на прилегающие подобъекты устанавливается параметрами Pinch (Сужение) и Bubble (Выпуклость). В данном свитке можно также увидеть кривую воздействия на выделенную область. Если значения параметров этого свитка будут изменены, кривая тоже изменит свою форму. Благодаря этому можно визуально определить характер выделения. Есть возможность использовать плавное выделение во всех режимах редактирования подобъектов.

    Плавное выделение кистью

    Определять характер мягкого выделения можно не только при помощи числовых параметров, но и используя виртуальную кисть. Соответствующие инструменты собраны в области Paint Soft Selection (Плавное выделение кистью). Если до начала плавного выделения кистью включить режим

    Этот урок полигонального моделирования в 3ds Max рассказывает о наиболее часто используемых 3d операциях при использовании Edit Poly модификатора (или Editable Poly). Этот метод отлично подходит для создания практически любых объектов в 3ds Max.

    Для начала создадим простой примитив Box с пропорциями реального телевизора.

    рис.1. Создали исходный 3d примитив - Box


    Применим к нашему боксу модификатор Edit Poly

    рис.2. Применили модификатор Edit Poly

    Нажатием клавиши F4 на клавиатуре в 3ds Max включаем отображение ребер нашей полигональной модели.

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

    рис.3. Перешли на уровень полигонов и выделили передний в окне перспективы

    Применим к выделенному полигону операцию Inset для создания грани как показано на рисунке. Она послужит основой для создания экрана.

    рис.4. Применяем к полигону операцию Inset

    Вдавливаем образовавшийся полигон внутрь командой Extrude .

    рис.5. Вдавили полигон операцией Extrude

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

    рис.6. Увеличиваем детализацию грани операцией Tesselate

    Переходим на уровень вертексов и выделяем центральную вершину экрана.

    рис.7. Выделили центральный вертекс

    Активируем режим мягкого выделения Soft Selection (Благодаря ему мы сможем деформировать объект более плавно). Обратите внимание на параметры Falloff и Bubble. Falloff отвечает за ширину зоны захвата соседних вертексов. Bubble - за форму распределения весов. Цветовое окрашивание наглядно показывает степень захвата.

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

    рис.8. Перемещаем центральный вертекс немного вперед в режиме мягкого выделения

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

    рис.9. Выделили заднюю грань телевизора

    Применяем к выделенному полигону операцию Bevel (Выдавливание со скосом).
    Height - величина выдавливания
    Outline - степень сужения

    рис.10. Выделили заднюю грань телевизора

    Вновь выдавливаем заднюю грань операцией Extrude .
    Height - величина выдавливания

    Что такое, и для чего используется полигональное 3D моделирование?

    Полигональное 3D моделирование (Polygonal modeling) является неотъемлемой частью нашей повседневной жизни. С ним современный человек сталкивается практически каждый день, возможно, этого даже не осознавая. Кино, мультипликация, компьютерные игры, виртуальная реальность и т.д. – все это направления, где используется полигональная 3D графика.

    С появлением 3D принтеров полигональные модели стали также использоваться для 3D печати объектов.

    В связи с возрастающей популярностью 3D принтеров, и сравнительно более простым 3D моделированием по сравнению с поверхностным/твердотельным, форматы полигональных моделей стали больше применять разработчики CNC программ для станков с числовым программным управлением (ЧПУ). В основном ЧПУ по дереву, пластикам и мягким металлам.

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

    Сегодня существует два основных направления развития 3D моделирования объектов: полигональное и твердотельное (поверхностное).

    Основное направление, где используется полигональное 3D моделирование, - 3D графика. Твердотельное/поверхностное - промышленный дизайн.

    В зависимости от того, какое конечное изделие Вы хотите получить, выбирается твердотельное (поверхностное) 3D моделирование, либо полигональное.

    Например, если вы ходите напечатать на 3D принтере игрушку или вырезать на фрезерном станке 3D рельеф картины из древесины, то следует выбрать полигональный формат 3D модели. Если же собираетесь выпустить любое промышленное изделие, то Вам придется остановить свой выбор на твердотельном формате. (см. раздел «Технологии» Твердотельное / поверхностное 3D моделирование).

    Различия двух форматов заключаются в принципах формирования 3D объекта. В полигональном 3D моделировании объекты строятся из полигонов, в твердотельном /поверхностном 3D моделировании объекты строятся из геометрических элементов, таких как линии. кривые, сплайны и т.д., а на основании этих элементов строятся различные геометрические фигуры.

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

    Качество полигональной 3D модели определяет количество полигонов, и сопряжения их ребер друг с другом. Всегда действует правило - чем больше полигонов, тем выше детализация полигональной 3D модели.

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

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

    Так что, если у Вас стоит задача изготовить изделие с высокой точностью, с ровными отверстиями, резьбой и т.д, то следует выбрать поверхностное/твердотельное 3D моделирование.

    Самым распространенным форматом полигональной 3D модели, воспринимаемым большинством CNC программ, для формирования управляющих программ для станков является - *.STL (Binary).

    Менее распространены *.3DS,*.OBJ, *.ASC, *.PLY, *.FCS.

    Хотим обратить Ваше внимание на то, что эффективного конвертера для преобразования STL в IGS, STP (твердотельную модель) на текущий момент не существует. Все решения дают посредственный результат, который нельзя использовать без дополнительных доработок 3D модели.

    Конвертация полигональной 3D модели из одного формата полигонов в другой обычно производится путем пересохранения файла 3D модели в нужном формате.

    Помните, что правильный выбор формата данных перед началом моделирования, и корректная постановка задачи исполнителю Вашего заказа – это основа для получения ожидаемого качества изделия!