Бесплатные 3D Модели

Упрощение визуализации массивных сцен в 3ds Max

Работа с тяжёлыми 3D сценами требует тщательного планирования и технических решений. Дэн Грувер познакомит вас с основами решения подобных задач.

«Планирование рабочего процесса» не самая вдохновляющая фраза, но это ключевая часть повышения эффективности. 3ds Max предлагает несколько встроенных методов предназначенных для работы с масштабными сценами, один из которых это «привязка к внешнему файлу» (referencing external files) - XReferencing. Его суть в разделении сцены на отдельные файлы, работающие независимо, и дальнейшее объединение их в главном файле в «живом» режиме — это схоже с разделением визуализации на проходы, для последующей настройки финального изображения в программе для пост-обработки. А также множество людей могут работать с одной и той же сценой одновременно, это один из главных плюсов этого метода.

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

XRef Scene (File > XRef Scene) это один из главных способов сделать подобное. Все объекты из одной сцены собираются вместе, и загружает в другую. В такой сцене нельзя ничего редактировать и она может собираться вместе только как группа. Вы можете выбрать ключевые части сцены, для игнорирования которые можно исключить из прилинковки, а остальные объекты вы сможете изменять только в плане выбора слоёв. Текущая сцена загружается в память каждый раз. Это идеальный способ подключить файл .max, который содержащий множество экземпляров или прокси объектов (листву, массовку, уличную фурнитуру), а также главную камеру (чтобы избежать случайного перемещения).

Ещё одним способом ссылки на элемент является XRef Object, однако это более хитрый способ — вы выбираете одиночный объект для вставки, и объект загружается только в память. Что же дальше? Вы можете выбрать прокси вьюпорта для этого объекта (из любого файла .max). Вы также можете перемещать этот объект куда пожелаете. Это значит, у вас должен быть файл .max, заполненный высоко-полигональной фурнитурой, а также другой файл, с низко-полигональными версиями этой же самой фурнитуры. К примеру, вы можете использовать XRef Object, чтобы вставить высоко-полигональную софу, но загрузив при этом только низко-полигональную версию, в качестве прокси во вьюпорте. С этим способом вьюпорт будет работать быстрее, и будет подгружать только низко-полигональный объект в память. Однако, когда вы будете визуализировать сцену, в память будет загружена высоко-полигональная версия для рендеринга.

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

Контейнеры появились сравнительно недавно в 3ds Max, и пока ещё сырые и вызывают вылеты программы при их использовании. Однако они имеют множество опций и являются неплохим компромиссом между двумя предыдущими методами. В связи с такого рода проблемами, если вы начали проект, используя контейнеры, а затем столкнулись с какой-то проблемой, переключиться на другой метод не так уж сложно.

Прокси объекты существуют во многих движках визуализации, однако я остановил свой выбор на опциях V-Ray: V-Ray Proxies являются ссылками на меш и текстурной информации, а также анимации. Меш подгружается только во время визуализации, а анимация может сохранять каждый кадр в отдельном файле, что делает его более эффективным для памяти и сети. Однако данное решение тоже не идеально, оно не имеет своего шейдера — вам придётся применят материал уже в главном файле.

Решение о том, какой метод лучше выбрать для каждого отдельного проекта может быть разным. Если над проектом работает много людей, то вам придётся разделить сцену на объекты, а если вы работаете один, то это не обязательно делать. Лучшее решение это комбинировать несколько методов.

Совмещение V-Ray прокси и объектов XRef

Смешанные методы

Это скрипт (Vrmesh), доступный на моём сайте, который должен помочь совместить два вида методов - V-Ray прокси с объектами XRef, что должно оптимизировать вьюпорт и ускорить рендеринг.

Вывод скрипта

Скрипт пройдётся по всей сцене и сгенерирует файл .max с оригинальными объектами, соединит всё вместе одним V-Ray прокси, а затем разместит их низко-полигональные версии по всей сцене.

Прокси вьюпорта

В главной сцене используются XRef объекты, для подключения в объекты V-Ray прокси. Затем выделяется низко-полигональная версия как вьюпорт прокси. Это даёт быстрый вьюпорт, эффективный рендеринг и простое управление.

Дэн Гувер3d художник фрилансер из Лондона А также технический директор в индустрии 3d анимации.

Урок взят и переведён с сайта: 3dworldmag.com