Бывают ситуации, когда необходимо уменьшить количество полигонов у с сохранением развертки и хорошей полигональной сеткой. Особенно это актуально в случаях 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д макс. Пробуйте и у вас обязательно все получится!
Делитесь с друзьями статьей и ищите остальные ну ооочень полезные советы в нашей группе

Всем привет! Тем, кто моделирует может знакома ситуация, когда в проект нужно добавить 3D модель, но исходника нет, но имеется моделька в формате ".STL".
Для того, чтобы производить какие-либо операции над такой моделькой, её необходимо экспортировать в формат, который "жуёт" ваша программа. (Работаю в fusion 360, и этот формат называется BRep) Но, если.stl модель слишком детализированная и имеет большое количество полигонов, то в лучшем случае САПР выдаст ошибку и не захочет её "кушать", а в худшем зависнет и совсем вылетит.

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

Давным-давно... Кажется в прошлую пятницу... (OST Винни-пух и Все, Все, Все)
Короче, жизнь меня прижала к стене, и мне пришлось в очннь короткий срок изучить NetFabb, чтобы вылечить модель. Скачал я подставку для визиток в виде движка , но она оказалась какой-то очень-очень странной, с пустотой внутри и стенками около 3 мм. Я подумал, что именно такие проблемы и лечит NetFabb, но починить так и не удалось. Короче, я забил и сам смоделировал вот такую модель подставки для визиток в виде двигателя V8 , найдя исходник. Получилось круто! Распечатал, и жизнь вновь пошла своим чередом...

В этот раз мне, кончено, повезло. Количество полигонов было очень близко к пределу и Fusion 360 дал предупреждение об этом. Тормозил он при этом дико, но его вполне можно понять))

Каким же образом уменьшать количество полигонов, чтобы САПР не жаловались и не тормозили?

Для примера возьмем вот такую 3D модель Венеры Милосской.

Сразу видим в нижнем углу крупный восклицательный знак, что свидетельствует о наличии в модельке косяков, а слева находится панель, на который отображается такая информация о модели:
Габаритные размеры (length, widht, height),
Объём (Volume),
Площадь поверхности (area)
Количество полигонов (triangles).

Надеюсь, с лечением модели проблем у вас не возникнет.

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

Так же выделяем нашу модель в "браузере", кликаем ПКМ и следуем по пути: modify / manipulate mesh/

На месте информационной панели открывается панель редакции сетки:

Снимаем галочку с пункта "Set target as low as possible" и получаем доступ к редакции параметров сетки (Mesh). Двигаем ползунок "Target" до тех пор, пока не достигнем нужного нам количества полигонов. Как и говорилось ранее, не советуется выставлять значение выше 1"000"000 tri. (tri. – аббревиатура слова triengles). Не уверен, но, возможно, если снять галочку с пункта "Fast mode", качество редуцирования будет лучше, но при этом время калькуляции увеличится раз в шесть.

Для "галочки" можно ещё раз прогнать модельку доктором.

Сохраняем файл в формате ".STL".

Поздравляю, вы научились уменьшать количество полигонов моделей формата ".STL"!
Не забывайте оценивать посты. Если вы нашли ошибки, поправляйте, дополняйте, я всегда рад вашим комментариям))

С вами был zykovkristian. Всем шикарного качества печати!

Бывают ситуации, когда требуется уменьшить количество вершин у высокополигональной модели с сохранением геометрии. В этой статье будут рассмотрены некоторые способы решения данной задачи, с помощью специальных инструментов программы Autodesk 3Ds Max: стандартных модификаторов «MultiRes», «Optimize», «ProOptimize» и специального плагина «Polygon Cruncher».


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


Так же отметим, что , состоящие из нескольких миллионов полигонов, хорошо открываются через Autodesk 3Ds Max. Многие 3D программы при аналогичных характеристиках компьютера обычно зависают, например, Blender, MODO, Sculptris.


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

1. Подготовка 3D модели

В качестве примера была взята стандартная модель из бесплатного 3D редактора Blender голова «Сюзанна», которая состоит из 507 вершин, 1005 ребер и 500 граней.


К данной модели сделана развертка, а также наложена текстура для более наглядного результата изменения полигональной сетки. После этого был применен модификатор «Subdivision Surface», с количеством итераций равным 3. В итоге получили высокополигональную модель с 31 658 вершинами, 63 144 ребрами и 31 488 гранями.


2. Уменьшение количества полигонов в программе Autodesk 3Ds Max

Итак, импортируем высокополигональную модель в Autodesk 3Ds Max. Правой кнопкой мыши через опцию «Convert To» переведем её из «Edit Mesh» в «Edit Poly». Отметим, что при этом количество вершин немного увеличится, в данном случае, с 31 488 до 31 658.


Для уменьшения количества полигонов в Autodesk 3Ds Max есть несколько как стандартных модификаторов, так и специальных плагинов. Рассмотрим некоторые их.

2.1 Модификатор «MultiRes»

Модификатор «MultiRes» (Множественное разрешение) относится к стандартным модификаторам 3Ds Max и находится во вкладке «Modify» (Модификаторы) в списке Modifier List (Список модификаторов). Он является наиболее эффективным для оптимизации полигональной сетки в этой программе, поэтому рассмотрим его более подробно.

2.1.1 Уменьшение количества вершин

Применяем модификатор «MultiRes» к модели и в самом низу нажимаем кнопку «Generate» (Генерировать). После этого станет активным раздел «Resolution» (Разрешение) со следующими задаваемыми параметрами:

  • «Vert Percent» (Процент Вершин) позволяет установить значение в процентах, до которого необходимо уменьшить модель;
  • «Vert Count» (Число Вершин) позволяет установить необходимое количество вершин, до которых необходимо уменьшить модель.

Для примера, уменьшим количество вершин до того значения, которое было у , то есть до 507, что составит 1,6% от имеющихся сейчас.



Как видим, модель, более-менее сохранила форму, но текстура у левого виска лежит не так как нужно.

2.1.2 Сохранение расположения текстуры

Это исправляется путем увеличения количества вершин, например до 2%. Либо можно пойти другим путем, через закрепление координат выбранных вершин, которые при оптимизации сетки модификатор трогать не будет. Для этого предназначен параметр «Maintain Base Vertex» в разделе «Generation Parameters» (Задать Параметры).


Активируем его галочкой. Увеличиваем количество вершин до той геометрии, при которой текстура на модели ляжет как надо, например до 2%.


После этого нажимаем на «+» у модификатора «MultiRes» и выбираем «Vertex» (Вершины). Теперь мышью при зажатой клавише «Ctrl» нужно указать те вершины, расположение которых необходимо сохранить. В данном случае выбраны 5 вершин. Затем, нажимаем кнопку «Generate».



После этого устанавливаем нужное количество вершин в «Vert Count», в данном случае 507. Таким образом, рисунок текстуры на модели будет расположен как нужно при прежнем количестве вершин.



Рассмотрим другие важные параметры этого раздела данного модификатора.

Раздел «Generation Parameters» (Задать Параметры)

«Vertex Merging» (Слияние Вершин) – предназначен для соединения разных элементов одного объекта при оптимизации полигональной сетки. Например, в данном случае, Сюзанна состоит из трех элементов: головы и двух глаз. Оптимизация сетки у этих элементов происходит отдельно друг от друга. Вершины глаз находятся на различном расстоянии от вершин головы. Если диапазон этого расстояния указать в данном параметре, то они соединятся. Например, при значении 0,5 сантиметров, это будет выглядеть следующим образом.



Как видим, вершины глаз, находящиеся на расстоянии до 0,5 сантиметров, соединились с вершинами головы.


Рассмотри другие важные параметры:

  • «Within Mesh» (Внутри Сетки) объединяет вершины не только между элементами, но и внутри каждого элемента общей сетки при заданном значении «Vertex Merging»;
  • «Boundary Metric» (Метрика Границ) старается сохранить форму на границе областей с разными материалами;
  • «Crease Angle» (Сгиб Угла) определяет угол между соседними гранями, который будет отображаться как сглаженный.

2.2 Модификатор «Optimize»

Изучим следующий модификатор. «Optimize» (оптимизация) – также является стандартным модификатором уменьшения граней объекта при сохранении её исходной формы.


Он более ранний, чем модификатор «MultiRes», поэтому он не такой функциональный. В частности, у него отсутствует такая полезная функция, как закрепление вершин, которая позволяет корректировать нужное отображение текстуры на объекте.


Некоторые специалисты по 3D моделированию вообще против его использования, так как, по их мнению, он очень сильно портит полигональную сетку. Но, все-таки списывать со счетов данный модификатор рано, так как, если «MultiRes» больше подходит для работы с вершинами 3D объекта, то модификатор «Optimize» больше рассчитан на работу с ребрами и гранями.


Поэтому, кратко рассмотрим его основные параметры, которые расположены в разделе «Optimize» (Оптимизация) во вкладке «Parameters» (Параметры):


«Face Thresh» (Разбиение Граней) – разбивает грани по заданному значению, чем оно больше, тем меньше полигонов:



«Edge Thresh» (Разбиение Ребер) – разбивает ребра по заданному значению, чем оно больше, тем меньше полигонов:



«Bias» (Срез) – отвечает за количество ребер и фасок, чем оно выше, тем больше полигонов:



«Max Edge Len» (Максимальная Длина Ребра) – устанавливает максимальную длину ребёр объекта, чем больше это значение, тем меньше полигонов:


2.3 Модификатор «ProOptimize»

Уменьшить количество полигонов 3D модели с сохранением её геометрии можно ещё одним стандартным модификатором «ProOptimize» (Профессиональная Оптимизация).


При применении данного модификатора, необходимо нажать на кнопку «Calculate» (Посчитать) во вкладке «Optimization Lever» (Уровень Оптимизации), тем самым произойдет подсчет вершин 3D объекта.


Аналогично модификатору «MultiRes», можно установить либо нужное количество вершин, либо их процентное соотношение. Установим значение равное 507.



Как видим, исчезла текстура. Чтобы её вернуть, необходимо во вкладке «Optimization Options» (Параметры Оптимизации) в разделе «Materials and UVs» (Материалы и Развертки) активировать опцию «Keep Textures» (Сохранить Текстуры), а после снова пересчитать вершины кнопкой «Calculate».



Теперь сравним полученный результат оптимизации полигональной сетки этого модификатора с результатом модификатора «MultiRes»:



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


В данном модификаторе есть возможность оптимизировать сетку объекта симметрично по выбранным осям. Это делается через вкладку «Symmetry Options» (Опции Симметрии).



Бывает, что при просчете сетки модели, появляется облако вершин, представляющее собой лишь точки без ребер и граней. Чтобы это исправить, необходимо перед просчетом, во вкладке «Optimization Options» в разделе «Merge Tool» (Инструмент Соединения) активировать опцию «Merge Vertices» (Соединение Вершин).

2.3 Плагин «Polygon Cruncher»

Помимо стандартных модификаторов Autodesk 3Ds Max для оптимизации полигональной сетки можно использовать специальный плагин «Polygon Cruncher» (Полигональное Сжатие). Он платный, но бесплатно его можно использовать в течение трех дней.


Модель загружается стандартно через вкладку «File» => «Open». Отображение текстуры включается активацией опции «Keep UV Textures» (Сохранить Текстуры).



После нажатия внизу на кнопку «Compute Optimization» (Вычисление Оптимизации) откроется дополнительное меню, в котором можно указать количество нужных вершин или граней. Ниже автоматически будет показана информация оптимизации в процентном соотношении. Установим количество вершин равное 507.



Для сравнения полученную модель экспортируем в формат.OBJ и импортируем в 3Ds Max.



Результат получился, почти такой же, как и при использовании стандартного модификатора «MultiRes» с той же самой проблемой исчезновения части текстуры.


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


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


Напомним, что на сайте постоянно обновляются для новичков и профессионалов. Например, вы можете почитать спичечного коробка в программе 3ds Max.


Перепечатка и использования данного материала без прямой обратной ссылки категорически запрещена!

Очень часто 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, и если вы работаете в этой программе, то для оптимизации полигональности он является наиболее подходящим. Параметры модификатора включают процентное уменьшение полигонов, сокращение итераций сглаживания и параметры углов. Экспериментируйте с этими значениями для того, чтобы получить наиболее подходящую комбинацию между внешним видом и количеством полигонов.