Сглаживание полигональных объектов и усложненное моделирование

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

Рассмотрим простейший пример — сглаживание бокса. Если в любом из видовых окон программы 3ds Max 2009 создать бокс из одного сегмента по длине, ширине и высоте, а затем назначить ему модификатор Mesh Smooth (Сглаживание сетки), объект приобретет форму октаэдра. Если теперь увеличить число итераций модификатора Mesh Smooth (Сглаживание сетки) до 4-5, то объект приобретет форму сферы.

sl_mod1а

sl_mod2б

Сглаживание бокса модификатором MeshSmooth (Сглаживание сетки) с числом итераций: а равным 1 и б - равным 5

Вот таким способом из бокса можно получить сферу. Если понадобится с помощью модификатора сглаживания получить бокс с закругленными гранями, то в зависимости от радиуса закругления граней необходимо будет увеличивать число сегментов длины, ширины и высоты бокса. Увеличение общего числа сегментов ведет к необоснованному в данном случае утяжелению модели, то есть увеличению числа полигонов. Чтобы добиться сглаженности граней, не слишком утяжеляя при этом модель, можно проделать нижеописанные действия. Прежде всего, нужно назначить боксу, состоящему из одного сегмента по трем измерениям модификатор Edit Poly (Редактировать полигон) или преобразовать его в редактируемую полигональную сетку. Выбрав подобъект Edge (Ребро), а затем, выделив ребра, перпендикулярные подлежащим скруглению, операцией Connect (Соединить) создать новые ребра, параллельные граням бокса, которые необходимо закруглить. Затем можно назначить модификатор сглаживания, Причем, чем ближе вновь созданное ребро будет к закругляемой грани, тем меньший радиус будет иметь фаска. Таким образом, результат сглаживания в случае увеличения числа сегментов до 10 и с использованием операции Connect (Соединить) будет одинаковым, при этом во втором случае бокс будет содержать примерно в 10 раз меньше полигонов. Увеличение числа итераций модификатора сглаживания в этом случае, кроме увеличения числа полигонов, приведет к более плавному сглаживанию граней.

sl_mod3
а

sl_mod4б

Результаты сглаживания бокса: aчисло сегментов равно 10; бразделение ребер при помощи Connect (Соединить)

Чаще всего для сглаживания полигонального объекта применяют модификаторы MeshSmooth (Сглаживание сетки) и TurboSmooth (Турбосглаживание). Модификатор TurboSmooth (Турбосглаживание) появился в одной из последних версий программы 3 ds Max. В отличие от MeshSmooth (Сглаживание сетки) он при сглаживании создает более наглядную корректную сетку, состоящую из прямоугольных полигонов, и все огрехи создания низкополигональной сетки сразу становятся видны. При этом модификатор Turbo Smooth (Турбосглаживание) не позволяет так управлять параметрами сглаживания, как MeshSmooth (Сглаживание сетки). В этом модификаторе предусмотрено три типа сглаживания: Classic (Классический), Quad Output (Четырех­угольные грани) и NURMS (Non-Uniform Rational Mesh Smooth — Неоднородное рациональное каркасное сглаживание). Можно определить, с какими поверхностями — треугольными или четырехугольными — будет работать модификатор. Для типов сглаживания Classic (Классический) и Quad Output (Четырехугольные грани) значения параметров сглаживания вводятся в полях Strength (Сила) и Relax (Ослабление) области Smoothing Parameters (Параметры сглаживания), В панели Local Control (Локальный контроль) находятся элементы управления расположением и весами вершин и ребер после сглаживания. Это весьма мощный инструмент и достаточно сложный в обращении. Чтобы понять, какой из методов наиболее подходит для конкретного случая, нужно попробовать применить каждый из них.

sl_mod5
а

sl_mod6
б

Применение модификатора сглаживания: аTurboSmooth (Турбосглаживание), 6- MeshSmooth (Сглаживание сетки)

МодификаторSmooth

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

  • Выделите сетчатый объект целиком или выделите набор смежных граней объекта, ребра между которыми требуется сгладить при визуализации.
  • Перейдите на командную панель Modify (Изменить), раскройте список Modifier List (Список модификаторов) и выберите модификатор Smooth (Сглаживание). Появится свиток Parameters (Параметры).

sl_mod7

  • Используйте следующие элементы управления для настройки сглаживания граней:
  • Auto Smooth (Автосглаживание) — установка этого флажка обеспечивает автоматическое отнесение к одной и той же группе сглаживания смежных граней, угол между нормалями которых не превышает величины, заданной в счетчике Threshold (Порог);
  • Prevent Indirect Smoothing (Предотвратить косвенное сглаживание) — установка этого флажка, который доступен только в режиме автосглаживания, в некоторых случаях помогает устранить ошибки автоматического сглаживания;
  • Smoothing Groups (Группы сглаживания) — набор кнопок с номерами, щелчок на любой из которых принудительно присваивает выделенной совокупности граней группу сглаживания, соответствующую номеру на кнопке.

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

sl_mod8
а

sl_mod9
б

Резкие ребра на поверхности тела лофтинга (слева) сглаживаются после применения модификатораSmooth(справа)

Модификатор MeshSmooth

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

Для использования модификатора MeshSmooth (Сглаживание сетки) выполните следующие действия.

  • Выделите объект, оболочку которого требуется сгладить. Перейдите на командную панель Modify (Изменить) и выберите в разделе Subdivision Surfaces (Разбиение поверхностей) раскрывающегося списка модификаторов строку MeshSmooth (Сглаживание сетки). Появятся свитки Subdivision Method (Метод разбиения), Subdivision Amount (Степень разбиения), Local Control (Локальное управление), Soft Selection (Плавное выделение), Parameters (Параметры), Settings (Настройки) и Resets (Восстановление), показанные на рисунке.

sl_mod10

  • Настройте параметры модификатора сглаживания. Укажите тип оболочки, которая будет сформирована после сглаживания, выбрав в раскрывающемся списке свитка Subdivision Method (Метод разбиения) один из трех вариантов:
  • Classic (Классическое) — будет сформирована обычная сетка с треугольными гранями и четырехугольными полигонами;
  • Quad Output (Квадратичный выход) — при сглаживании сетки будут добавляться только четырехугольные полигоны (каждый из которых тем не менее также состоит из двух треугольных граней, разделенных невидимым в обычных условиях ребром);
  • NURMS (Non-Uniform Rational MeshSmooth — Неоднородная рациональная сглаженная сетка) — будет сформирована оболочка типа NURMS, похожая на поверхности NURBS в том смысле, что также позволяет настраивать веса управляющих точек, влияющие на ее форму.

Установите или снимите следующие флажки:

  • Apply To Whole Mesh (Применить ко всей сетке) — игнорируется любое выделение подобъектов, и сглаживание применяется ко всей сетке;
  • Old Style Mapping (Проецирование в старом стиле) — будет использован подход к модификации системы проекционных координат при разбиении сетки на все большее количество граней, принятый в программе 3ds Max версии 3.
  • Настройте параметры алгоритма сглаживания в свитке Subdivision Amount (Степень разбиения):
  • Iterations (Итераций) — задает количество итераций применения модификатора сглаживания из диапазона от 0 до 10. В процессе каждой итерации создается дополнительный набор граней;

sl_mod11
а

sl_mod12

б

Исходная модель кисти руки (слева) и она же после двух итераций сглаживания сетки по методу NURMS (справа)

  • Smoothness (Гладкость) — определяет, насколько острыми должны быть углы между смежными гранями исходной сетки, чтобы к ним применялось сглаживание. Значение 0 блокирует добавление новых граней, а значение 1 обеспечивает добавление новых граней даже между гранями исходной сетки, лежащими в одной плоскости;
  • Render Values (Параметры визуализации) — флажки и счетчики этой группы позволяют задать иные параметры Iterations (Итераций) и Smoothness (Гладкость), которые будут использоваться только при визуализации сцены.
  • Если вы применили сглаживание типа NURMS и произвели одну или несколько итераций разбиения, то имеете возможность выбрать вершины или ребра сеток уровней разбиения, предшествующих текущему. Исходная сетка и все сетки предшествующих уровней разбиения играют роль решеток деформации по отношению к сетке текущего уровня сглаживания. Редактирование подобъектов этих решеток влияет на вид сглаженной сетки. Настраивайте параметры отображения и веса точек управляющих решеток поверхностей типа NURMS в свитке Local Control (Локальное управление):
    • Subobject Level (Уровень подобъекта) — две кнопки со значками, позволяющие перейти на уровень редактирования двух типов подобъектов управляющей решетки: Vertex (Вершина) или Edge (Ребро);
    • Ignore Backfacing (Игнорировать изнаночные) — при установке этого флажка будут выделяться только подобъекты, нормали которых направлены на наблюдателя;
    • Control Level (Уровень управления) — позволяет выбрать для выделения подобъекты определенного уровня сетки типа NURMS, номер которого соответствует итерации разбиения: нулевой уровень — исходная сетка, первый — результат первой итерации разбиения и т. д.;
    • Crease (Складка) — задает, в какой мере выделенные ребра сетки будут восприниматься программой как складки поверхности. При значениях, близких к 0, ребро сглаживается сильно, а при значениях, близких к 1, ребро не сглаживается вообще;
    • Weight (Вес) — задает веса выделенных вершин или ребер. При увеличении веса вершины сглаженная часть сетки «притягивается» к ней. Увеличение веса ребра, напротив, «отталкивает» сглаженную часть сетки;
    • Isoline Display (Показ изолиний) — если этот флажок установлен, то сглаженная сетка изображается только в виде изолиний, под которыми понимаются ребра исходной сетки. При снятом флажке будут видны все полигоны сглаженной сетки;
    • Show Cage (Показывать решетку) — установка этого флажка включает отображение двухцветной решетки, дающей представление о том, как выглядел объект до разбиения. Выбор цветов осуществляется с помощью двух цветовых полей, расположенных справа от флажка. Первое поле задает цвет невыделенных ребер на уровне редактирования вершин, а второе — цвет невыделенных ребер на уровне редактирования ребер.
  • Если выбран тип сглаживания Classic (Классическое) или Quad Output (Квадратичный выход), настройте в свитке Parameters (Параметры) следующие параметры области Smoothing Parameters (Параметры сглаживания):
  • Strength (Степень) — задает относительный размер добавляемых граней в диапазоне от 0 до 1;
  • Relax (Ослабление) — ослабляет степень «натяжения» оболочки, слегка сближая вершины граней;
  • Project to Limit Surface (Проекция на предельную поверхность) — обеспечивает проекцию точек сетки на предельную поверхность, которая получилась бы в результате применения бесконечно большого количества итераций модификатора сглаживания.

Чтобы назначить группы сглаживания новым частям сетки, используйте параметры области Surface Parameters (Параметры поверхности):

  • Smooth Result (Сгладить результат) — установка этого флажка вызывает применение одной и той же группы сглаживания ко всем граням сетки;
  • Separate by (Разделять по) — группа из двух флажков, установка которых предотвращает появление новых граней между гранями исходной сетки с одинаковыми идентификаторами материала (Materials) или с одинаковыми группами сглаживания (Smoothing Groups).
  • В свитке Settings (Настройки) выберите тип элементов исходной сетки, на которые будет действовать модификатор, щелкнув на одной из двух снабженных значками кнопок группы Operate On (Воздействовать на): Triangles (Треугольники) или Polygons (Полигоны). Щелчок на кнопке Triangles (Треугольники) обеспечивает формирование дополнительных граней сглаженной сетки вдоль всех ребер исходной сетки, даже невидимых. Флажок Keep Faces Convex (Сохранить выпуклость граней) включает режим сохранения топологии выпуклостей оболочки в процессе сглаживания. Параметры области Update Options (Условия обновления) определяют, когда следует обновлять результаты сглаживания:
    • Always (Всегда) — при каждом изменении;
    • When Rendering (При визуализации);
    • Manually (Вручную) — после щелчка на кнопке Update (Обновить).
  • Используйте элементы управления свитка Resets (Восстановление) для восстановления исходных параметров подобъектов модифицируемой сетки, установив переключатель в одно из двух положений: Reset All Levels (Восстановить все уровни) или Reset This Level (Восстановить этот уровень). Применяйте с этой целью следующие кнопки:
  • Reset Geometric Edits (Восстановить правку геометрии) — восстанавливает исходные значения параметров всех вершин и ребер сетки, если к ним применялись стандартные преобразования;
  • Reset Edge Creases (Восстановить складки ребер) — возвращает всем ребрам исходные значения параметра Crease (Складка);
  • Reset Vertex Weights (Восстановить веса вершин) — возвращает всем вершинам исходные значения весов, равные 1;
  • Reset Edge Weights (Восстановить веса ребер) — возвращает всем ребрам исходные значения весов, равные 1;
  • Reset Everything (Восстановить все) — возвращает исходные значения всем параметрам сетки.

Модификатор TurboSmooth

Подобно модификатору MeshSmooth (Сглаживание сетки) модификатор TurboSmooth (Турбо-сглаживание) сглаживает геометрию сцены. Но он работает значительно быстрее и требует меньше оперативной памяти. Для сглаживания применяется всего один метод — NURMS (неоднородная рациональная сглаженная сетка), а сам модификатор может воздействовать только на объект в целом. Возможность перехода к дополнительным уровням разбиения отсутствует, как и возможность получить на выходе сетку, состоящую из треугольных граней.

Модификатор TurboSmooth (Турбосглаживание) сглаживает углы. Он дает возможность контролировать размер и количество новых граней.

Для сравнения скорости работы модификаторов MeshSmooth (Сглаживание сетки) и TurboSmooth (Турбосглаживание) выполните следующие действия.

  • Создайте объект-примитив Box (Бокс), разделенный по каждой из сторон на три сегмента. Преобразуйте его в редактируемую полигональную сетку.
  • Перейдите на командную панель Modify (Изменить) и выберите в разделе Subdivision Surfaces (Разбиение поверхностей) раскрывающегося списка модификаторов строку MeshSmooth (Сглаживание сетки).
  • Введите в поле Iterations (Итераций) значение 5. Это вызовет значительное разбиение сетки.
  • Щелкните на квадратике со знаком «плюс», расположенном слева от строчки Editable Poly (Редактируемый полигон) в стеке модификаторов, и выделите строку Vertex (Вершина). Щелкните на кнопке Show end resuLt on/off toggle (Показать конечный результат вкл./выкл.).
  • Перетащите одну из угловых вершин исходного бокса и обратите внимание, с какой задержкой меняется форма сглаженного объекта.
  • Удалите модификатор MeshSmooth (Сглаживание сетки) и выберите в разделе Subdivision Surfaces (Разбиение поверхностей) раскрывающегося списка модификаторов строку TurboSmooth (Турбосглаживание). Повторите вышеописанные операции, наблюдая за скоростью реакции программы на ваши действия.

Надеюсь, эта информация будет Вам полезна.

Быстрых и чистых Вам рендеров!


 

Хотите узнать больше?
diski
«Моделирование интерьерного наполнения»
Интерьер без наполнения не интерьер. Так, стены... Понятно, что интерьер нужно наполнять всеми атрибутами этого самого интерьера. Двери, окна, принтусы, молдинги, карнизы, мебель, техника, ткани и т.д. и т.п. Создание всех этих объектов, от простых до самых сложных рассматривается в предлагаемом видеокурсе.

Кликните здесь, чтобы узнать подробнее


Оставить комментарий