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

 
Категории 
Программы 
 

Во-первых: прежде чем настраивать оптимизацию, решите для себя, насколько важна реальная полноценная геометрия той или иной модели сцены. Думаю, нет смысла объяснять, что весьма мрачно рендерить кресло на 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

1262 4
 
 
 
 
 

Комментарии

 -  07.04.2010 - 10:35

Молодец ! спасибо за урок

 -  08.07.2010 - 01:31

да большое спасибо...вообще сдесь классные уроки ...так держать!!!

 -  21.08.2011 - 11:41

Очень помогло!!!!

 -  23.09.2011 - 16:34

Спасибо буду пробовать чичас... а то комп кипит уже)))

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

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
CAPTCHA на основе изображений
Enter the characters shown in the image.
Добавить урок

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