3d-портал
На главную
 
 
 

Оптимизация высокополигональных моделей

 
 

Оптимизация высокополигональных моделей

31.01.2010 г. Описание модификаторов Optimize и MultiRes

Во-первых: прежде чем настраивать оптимизацию, решите для себя, насколько важна реальная полноценная геометрия той или иной модели сцены. Думаю, нет смысла объяснять, что весьма мрачно рендерить кресло на 170000 поликов с полным качеством, если оно одиноко тусуется в уголке на дальнем плане (и на конечной картинке будет размером 100х100 пикселов). А честный Врей (как и все остальные) будет стараться просчитать его полноценно, на всю катушку...

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

В качестве тестового объекта была взята высокополигональная модель кресла (из коллекции EverMotion Max Elements) с разрешением 167467 полигонов.

Тестовая сцена: кресло (материал Standard), Врей-план (материал Standard), 1 плоский Врей-лайт (Subdivs. = 16), Irradiance Map (Hsph.Subdivs = 30, Interp.Samples = 120).

Оптимизация высокополигональных моделей

1А) Исходный каркас.

Оптимизация высокополигональных моделей

1Б) Исходный каркас — конечный рендер.

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

Основные настройки задаются двумя параметрами: Face Tresh (степень деградации поверхностей) и Edge Tresh (степень деградации рёбер). При высоких значениях выдаёт абсолютно непотребные варианты.

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

Дополнительные настройки:

  • Переключатели Renderer/Viewport L1/L2 — позволяют выставлять различные значения деградации для отображения во вьюпорте и при рендере;
  • Параметр Bias — задаёт допустимую величину смещения рёбер/граней при оптимизации;
  • Параметр Max Edge Len — задаёт максимально допустимую длину рёбер при оптимизации;
  • Опция Auto Edge — оптимизирует оптимизированные рёбра;
  • Опция Preserve/Material Boundaries — сохраняет границы стыка материалов (в случае наложения на один меш нескольких материалов).
  • Опция Preserve/Smooth Boundaries — сохраняет уровень сглаживания поверхностей.

C помощью модификатора Optimize количество полигонов в тестовой модели удалось уменьшить до 70596 (примерно 42%). При больших значениях начинались явные косяки с геометрией...

Оптимизация высокополигональных моделей

2А) Исходный каркас с наложенным модификатором Optimize.



2Б) Исходный каркас с наложенным модификатором Optimize — конечный рендер.
 

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

Первое, что нужно сделать после наложения этого модификатора — щёлкнуть по кнопке Generate в нижней части панели настроек модификатора (будет произведён предварительный просчёт модели). При этом Макс может задуматься довольно надолго.

Основные настройки задаются одним параметром: Vertex Percent / Vertex Count. Параметра два, но делают они одно и то же: задают количество вершин в модели (первый — в процентном соотношении, второй — в числовом). Значение Face Count показывает количество граней в оптимизированной модели, значения Max Vertex и Max Face — количество вершин и граней в исходной модели.

Дополнительные настройки:

  • Параметр Vertex Merging — задаёт максимальное расстояние между вершинами, которые будут объединены в ходе оптимизации.
  • Опция Within Mesh — включает режим, в котором будут сливаться вершины, принадлежащие разным элементам в пределах одного меша.
  • Опция Boundary Metric — включает режим, в котором оптимизатор будет стараться сохранять внешние контуры меша.
  • Опция Maintain Base Vertices — включает режим, в котором оптимизатор не затрагивает выделенные вершины (вершины выделяются как суб-элементы модификатора MultiRes).
  • Параметр Crease Angle — устанавливает минимальное значение угла между гранями, который будет отображаться как сглаженный.

C помощью модификатора MultiRes количество полигонов в тестовой модели удалось почти безболезненно уменьшить до 33099 (20%!!!).

Оптимизация высокополигональных моделей

3А) Исходный каркас с наложенным модификатором MultiRes.



3Б) Исходный каркас с наложенным модификатором MultiRes — конечный рендер.

Вооот...

Кстати, забыл сказать, что:

1) Оба модификатора прекрасно садятся на группы объектов (если, конечно, объекты обладают примерно равноценными параметрами);

2) Вкуснятина : оба модификатора прекрасно анимируются! То есть, при создании сложных сцен с анимацией можно регулировать разрешение модели по мере удаления её от камеры!

Кроме того, возможность анимации разрешения позволяет... создавать довольно прикольные эффекты.

P.S. Сцена и материалы довольно простые, поэтому разница по времени не так ощутима. Хотя снижение времени рендера со 104 до 84 секунд — ИМХО, уже неплохо, около 20%...

P.P.S. Тутор делался очень быстро, поэтому просьба на кривые тени и прочие косяки внимания не обращать.

Автор: Kaigo
Источник: www.cgart.uz
Перевод: 3d Уроки

 
 
 
 

Комментарии:


25.10.2010 20:32
Автор молодец!

Андрей_В 04.03.2011 22:39
Ещё бы и сами проги были бы для полной ясности новечкам вроде меня - вообще круто было б.)

mgn 11.05.2011 11:56
Урок очень актуальный, а главное, понятный)) Спасибо автору.

Alina Khon 02.08.2011 01:05
Спасибо Kaigo, очень полезная вещь!

17.12.2011 16:52
Спасибо за полезные советы, очень много раз сталкивалась с проблемами такого рода, когда бедная программа висла из-за огромного количества полигонов. Теперь знаю, что делать.

14.03.2013 04:07
спасибо!

оставить комментарий (только для зарегистрированных пользователей)


 


 
 
 
  COPYRIGHT ©2009-2017 3D-WARES
    Яндекс.Метрика