Уменьшение полигонов в 3d max. Теперь приступаем к сокращению количества полигонов

20.04.2019

Очень часто 3d моделирование и визуализация объектов, персонажей или сцен основывается на полигональном моделировании. При этом далеко не всегда количество полигонов готовой модели остается адекватным, а ведь чем больше полигонов, тем выше сложность обработки модели. Сегодня мы поговорим о способах, которые помогут уменьшить этот показатель и в то же время оставят модель реалистичной.

Способы уменьшения полигональности в 3D MAX

Большинство визуализаторов рекомендуют использовать один из модификаторов программы 3d max для того, чтобы уменьшить слишком большое количество полигонов. К примеру, в 3д макс визуализация интерьера выполняется для последующего создания виртуального тура, а в этом случае высокополигональные модели будут требовать дополнительных мощностей для обработки. Эти встроенные инструменты удобны в использовании и дают неплохой результат, кроме того, высокополигональные модели хорошо открываются в 3d max, а вот другие программы могут потребовать слишком большого количества ресурсов компьютера, что не очень хорошо для медленных машин.

Чтобы освоить модификаторы, поэкспериментируйте над моделями с простой геометрией

  • Optimize. Модификатор, который в основном рассчитан на работу с вершинами и гранями. Чтобы уменьшить полигональность модели, понадобится поэкспериментировать с числовыми значениями в опциях модификатора, где можно указать длину ребра, количество полигонов и другие параметры. Сложность может возникнуть с тем, что у Optimize нет функции закрепления вершин, необходимой для работы с текстурами на объекте.
  • ProOptimize. Еще один стандартный модификатор, позволяющий уменьшить количество полигонов на трехмерной модели. Работая с параметрами, можно указать в процентах, на сколько нужно снизить полигональность, или сначала выполняем подсчет вершин, а потом указываем желаемое количество.
  • MultiRes. Считается наиболее эффективным модификатором для упрощения моделей путем снижения полигональности среди встроенных средств программы. Помимо указания процентного отношения и нужного количества вершин, здесь можно закрепить определенные вершины, необходимые для сохранения точной геометрии объекта.

Помимо встроенных модификаторов 3D Max позволяет использовать и дополнительные возможности, например, Polygon Cruncher, который является платным и устанавливается отдельно. Впрочем, уменьшить полигональность можно не только в 3d max, но и в других редакторах для создания трехмерных моделей.

Снижаем количество полигонов в других редакторах

Если ваша область работы — создание 3d моделей для игр, вы в основном используете ZBrush и не хотите переходить на 3D Max только ради того, чтобы уменьшить полигональность, вам подойдет плагин под названием Decimation Master. Для того, чтобы оптимизировать готовую модель, понадобится установить плагин, найти его в панели плагинов и произвести необходимые оптимизационные вычисления. Отлично подойдет для того, чтобы создавать различных персонажей.


Если вы работаете с персонажами в ZBrush, вам не обязательно использовать 3d max для снижения полигональности — применяйте плагины вашей программы

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

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

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

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

В этой статье рассмотрим, как сделать так, чтобы модель имела как можно меньше полигонов.

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

1. Запустите 3ds Max. Если он не установлен на вашем компьютере, воспользуйтесь инструкцией на нашем сайте.

2. Откройте сложную модель с большим количеством полигонов.

Уменьшить количество полигонов можно несколькими способами.

Снижение параметра сглаженности

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

2. Если в списке примененных модификаторов присутствует «Turbosmooth» или «Meshsmooth», выберите его.

3. Снизьте параметр «iterations». Вы увидите, как количество полигонов будет убавляться.

Этот способ самый простой, но имеет недостаток — далеко не каждая модель имеет сохраненный список модификаторов. Чаще всего она уже конвертирована в полигональную сетку, то есть, попросту, «не помнит», что к ней применялся какой-либо модификатор.

Оптимизация сетки

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

2. Выделяем объект и назначаем ему модификатор «MultiRes» из списка.

3. Теперь раскройте список модификатора и нажмите в нем «Vertex». Выделите все точки объекта, нажав Ctrl + A. Нажмите кнопку «Generate» внизу окна модификатора.

4. После этого станет доступна информация о количестве связанных точек и проценте их объединения. Просто уменьшите стрелочками параметр «Vert percent» до нужного уровня. Все изменения в модели отобразятся моментально!

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

Итак мы рассмотрели два способа упрощения полигональной сетки объекта в 3ds Max. Надеемся этот урок принесет вам пользу и поможет создать качественные 3D-модели.

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


В этом уроке рассмотрим, как можно решить данную задачу в бесплатном 3D редакторе Blender стандартным плагином «Decimate» («Десятикратное уменьшение»).


Для работы понадобится стандартный 3D редактор Blender и модель, которой необходимо уменьшить количество полигонов.

1. Подготовка сцены

Помещаем модель в сцену. В данном случае это высокополигональная 3D модель головы Сюзанны, состоящей из 31 488 полигонов. На модели присутствует развертка и наложена текстура.



Теперь добавим модификатор «Decimate»: «Properties» => «Modifiers» => «Add Modifier» => «Generate» => «Decimate».



После этого откроются параметры модификатора, в которых будут три опции:

  • «Collapse» (Разрушение) – это процентное уменьшение полигонов;
  • «Un-Subdivide» (обратное подразделение) – это уменьшение полигонов через сокращение итераций сглаживания;
  • «Planar» (Плоскостное) – это уменьшение полигонов через установление параметров углов.

2. Процентное уменьшение полигонов

Первая опция «Collapse» (Разрушение) позволяет уменьшить количество полигонов, задав их в процентах в шкале «Ratio» (Соотношение).


По умолчанию значение «Ratio» задано 1, то есть равно 100%. Следовательно, чтобы уменьшить количество полигонов на 90%, в шкале «Ratio» нужно выставить значение 0,1, если на 99%, то равное 0,01. Внизу напротив надписи «Face» автоматически будет указано количество полигонов в случае применения модификатора.


До определенного значения процентного соотношения развертка на модели будет сохраняться. Это во многом зависит от ровности полигональной сетки. В данном случае развертка сохранятся при сокращении полигонов в два раза, то есть на 50%. При уменьшении полигонов на 90% происходит уже искажение развертки.



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


Так же данным способом есть возможность уменьшить количество полигонов только на определенной части развертки. Для этого необходимо на выбранную часть равертки назначить группу вершин, а затем выбрать её в модификаторе «Decimate» в разделе «Collapse» через «Vertex group name».



Ниже можно установить галочку напротив надписи «Triangulate» (Триангулировать), то есть после применения модификатора полигональная сетка будет разбита на треугольники. А активация галочкой «Symmetry» (Симметрия) позволяет уменьшить полигоны симметрично по выбранной оси.

3. Уменьшение полигонов через обратное подразделение поверхности

В различных 3D редакторах есть модификатор «подразделения поверхности», который увеличивает количество полигонов и придает ей более сглаженную форму. Например, в Autodesk 3dsmax это модификатор «Turbo Smooth», а в Blender это модификатор «Subdivision Surface».


Так вот, функция «Un-Subdivide» (обратное подразделение) в модификаторе «Decimate» выполняет обратное действие, то есть уменьшает количество полигонов на заданное число итераций. В данном случае применено четыре итерации.



Как видим, текстура на модели «поплыла», но зато геометрия получилась достаточно ровная. Что позволяет данной модели сделать развертку, а затем «запечь» текстуры с первоначального варианта. Функция «Un-Subdivide» в модификаторе «Decimate», это своего рода быстрая ретопология с достаточно приличной геометрией в результате.

3. Уменьшение полигонов угловым пределом

Третья функция данного модификатора «Planar» позволяет уменьшить количество полигонов через «Angle Limit» (Угловой предел).


Внизу можно выбрать параметры, которые нужно сохранить при уменьшении числа полигонов. В крайнем правом углу можно выбрать «UVs», то есть уменьшить число полигонов с сохранением границ развертки. Галочкой можно активировать «All Boundaries», то есть все границы.


Бывает так, что нам нужно упростить модель. Делается это, например, чтобы облегчить сцену, оптимизировать работу с объектом, или же модель изначально была создана в сторонних программах, или автор модельки при экспорте задал наивысшее число полигонов. В уроке рассмотрим 3 модификатора: Optimize , ProOptimizer , Multires .

Совет: нажмите клавишу «7», чтобы во вьюпорте отображалась информация о количестве полигонов и вершин объекта.

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

  • Fase Thresh - отвечает за разбиение граней;
  • Edge Thresh - разбивает ребра;
  • Max Edge Len - задает максимальную длину ребра;
  • Auto Edge - включает режим автоматической оптимизации;
  • Bias — задает количество полигонов.

Играя со значениями этих параметров мы уменьшаем количество полигонов. В режиме Realistic (Shift+F3) визуально оцениваем нужную гладкость модели.
Конвертируем модель в Editable Poly (ПКМ по вьюпорту — Convert to...), переходим в Object Properties и смотрим параметр Faces (вкладка General). Он показывает количество полигонов модели. С помощью Optimaze можно сократить число полигонов на несколько тысяч без потери качества модели.

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

Там же в Modifier List находим модификатор ProOptimizer. Рассмотрим на примере любимого чайника с намеренно завышенным числом сегментов. Применяем к объекту модификатор. Жмем рассчитать (Сalculate). Указываем на сколько в процентах мы хотим упростить объект (Vertex %) или задаем определенное количество вершин (Vertex Count). Чуть ниже мы видим статистику, где указано количество полигонов до и после модификации.

Конвертируем чайник в Editable Poly. Модификатор применился. Сравним два чайника: исходный и с примененным модификатором. Видим, что визуально модель не изменилась, но число полигонов на втором объекте в разы ниже.

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

Также применяем модификатор через Modifier List. Жмем Generate. Задаем параметры нашего чайника.

  • Vert Percent - процентная доля вершин;
  • Vert Count определяет количество вершин;
  • Fase Count показывает нам число вершин после оптимизации;
  • Max Fase - до оптимизации.

Это три простых способа оптимизировать модель без потери качества с помощью стандартных модификаторов 3д макс. Пробуйте и у вас обязательно все получится!
Делитесь с друзьями статьей и ищите остальные ну ооочень полезные советы в нашей группе

Некоторые программы, к примеру, ZBrush, предрасположены к созданию большого количества многоугольников, из-за чего преодолеть рациональный лимит очень просто. К счастью, есть способы, позволяющие быстро и эффективно сократить количество полигонов. Этот процесс также известен под названием «упрощение объекта». Большинство программ для 3D-моделирования обладают этой функцией, но вы также можете воспользоваться не менее эффективной альтернативой - MeshLab. Это приложение доступно для операционных систем — Windows, OSX и Linux.

На рисунке показаны результаты упрощения модели простой игрушечной машины, у которой изначально было 480 000 полигонов. Сократив их до 120 000, мы не заметили особенной разницы в качестве. Но с каждым последующим упрощением объект становился всё грубее и грубее.

Если вы ещё не загрузили и не установили MeshLab, то сделайте это и импортируйте свою модель.

В главном меню выберите следующие вкладки Filters > Remeshing, simplification and construction > Quadratic Edge Collapse Detection. Далее, открыв новую панель с наборов функций нажмите на кнопку «Help», Вы получите дополнительную информацию о каждой из доступных опций.

Доступны следующие параметры настройки:

Target number of faces (заданное количество поверхностей) установите самостоятельно.


Quality threshold (порог качества) значение от 0 до 1. Заметьте, чем оно выше, тем труднее MeshLab придерживаться исходной формы модели . В документации чётко не указано, какими будут последствия использования высокого значения порога. Вместе с тем, значения 1 вполне достаточно для отличных результатов.

От автора: «От установок порога качества зависит — насколько может ухудшиться форма полигонов модели . Чтобы сохранить первоначальные формы потребуется большее количество правильных поверхностей. Поэтому значение в диапазоне 0-1 является наиболее оптимальным. 0 — принимает любой тип поверхностей, 0,5 - убирает мелкие полигоны ращмером < 0,5. Все изменения происходят с сохранением пропорций»

Preserve Boundary of the Mesh (сохранение границ полигональной сетки). Выбираем Yes. Разработчики объясняют это тем, что упрощение объекта не означает разрушение его границ. Этот параметр не влияет на водонепроницаемые полигональные сетки.

Preserve Normal (сохранение нормали) также нажимаем Yes. Это параметр предотвращает случайное изменение нормалей в MeshLab. Создатели программы рекомендуют избегать эффектов, влияющих на нормали, и стараться сохранять исходную ориентацию поверхности. Недостаток в том, что при такой установке увеличивается время обработки модели . Опция активизируется по умолчанию. Если же во время загрузки модели у вас произошло переориентация нормалей, то это можно исправить, открыв вкладки Filter > Normals, Curvature and Orientation > Re-Orient all faces coherently .

Optimal position of simplified vertices (оптимальное положение вершин) выбираем Yes.