Как перевести объект в прокси
Прокси в 3D Max
Прокси в 3D Max. Большие проекты по визуализации архитектуры, сложных технических объектов, интерьеров и т. д. содержит несколько сотен тысяч полигонов. В отдельных случаях их количество превышает миллионы.
Прокси в 3D Max. Большие проекты по визуализации архитектуры, сложных технических объектов, интерьеров и т. д. содержит несколько сотен тысяч полигонов. В отдельных случаях их количество превышает миллионы.
И не всегда мощности компьютера хватает для того, чтобы можно было комфортно продолжить работу над сценой. Начинаются зависания, 3D Max тормозит или даже периодически вылетает. Это делает дальнейшее моделирование крайне затруднительным или даже невозможным. Знакомо? С этим можно бороться.
Один из наиболее эффективных инструментов — прокси в 3D Max. Визуализаторы, которые работают над сложными проектами на личном компьютере, считают его своим незаменимым помощником. Прокси в 3D Max позволяет в несколько кликов разгрузить сцену, не удаляя объектов, и продолжить моделирование.
Словом, если требования проекта к системным ресурсам выше, чем мощность вашего компьютера, вам следует воспользоваться возможностями прокси.
Как правильно использовать прокси в 3D Max?
Прокси — особый компьютерный алгоритм. Он исключает из сцены большее количество полигонов сложной модели. При этом они не исчезают и не удаляются. Этот метод переносит их в специальный прокси-файл, где они хранятся вплоть до рендеринга сцены. Также их можно вернуть в любой момент, нажав несколько клавиш.
Чтобы активировать прокси, необходимо:
На последнем остановимся несколько подробнее, так как именно от этой настройки зависит дальнейший комфорт работы с объектом, который мы частично перенесли в прокси-файл.
Оптимальное количество остаточных полигонов зависит от особенностей модели. Оно определяется опытным путём. Однако следует оставить такое количество полигонов, которое позволит:
Также к переносу в прокси объект нужно подготовить. Во-первых, перед этой манипуляцией следует закончить моделирование и текстурирование предмета. Во-вторых, если он состоит из нескольких разных объектов, их нужно соединить в один. В ином случае прокси сработает неправильно.
Альтернативы прокси
Мы описали наиболее эффективный способ разгрузить сцену. Однако есть и другие. Они проще в использовании, но и не дают такого заметного эффекта.
Чтобы снизить нагрузку на компьютер, вы можете:
Хотите узнать про прокси и другие методы оптимизации сцены больше? Учитесь по удобному для себя графику на онлайн-курсах! Вы можете принять в них участие, находясь в любой точке Москвы, России и даже мира.
Repetitor3d.ru
3d графика и дизайн
Как облегчить сцену: proxy в Corona и VRay
Большие, наполненные деталями интерьеры и экстерьеры, созданные в 3д макс, не редко включают в себя до половины миллиона полигонов. И далеко не каждому компьютеру хватит мощности вытянуть такое количество: сцена начинает вращаться скачками, проседает FPS, программа начинает виснуть, а иногда даже вылетает.
Бороться с этим можно несколькими способами, например:
Что такое прокси
Прокси — это специальный алгоритм, который выгружает информацию о модели в сторонний файл, оставляя в сцене лишь упрощенную его версию, снижая количество полигонов. Особенно его актуально использовать при большом количестве деревьев и травы в сцене, так как они «съедают» очень много памяти видеокарты.
Результат конвертации в прокси не влияет на рендер, модель подгружается из специального файла и мы видим ее в оригинале, не упрощенной. Экономия ресурсов при использовании этого полезного инструмента 3ds max просто огромная.
Как подготовить модель к переводу в proxy
Прежде чем переводить (конвертировать) объект в прокси, нужно 3d-модель подготовить. Конвертировать следует только конечный результат. Поэтому:
Как пользоваться прокси в Vray
Итак, у нас есть сложный объект, грузящий сцену, с плотной сеткой и большим количеством деталей. Я покажу работу алгоритма на чайнике, который сейчас построен из 50 тысяч полигонов. Чтобы узнать их количество, я нажала горячую клавишу 7.
Как пользоваться вирей прокси далее рассказываю в пошаговой инструкции:
Выбирайте такое количество faces, которое оставит вам хоть какое-то понимание об объеме модели.
Вот такой результат у меня получился с 10 тыс. полигонами, прилагаю также рендер, чтобы вы убедились, что на итоговую картинку манипуляции не повлияли. Кстати, настройки вирей я брала отсюда.
Настройки
Теперь разберем некоторые настройки VRayProxy. Переходим в раздел Modify. Полезными будут параметры:
Будьте осторожны с отображением точкой, она не имеет полигонов совсем, и в сцене ее легко потерять.
Кнопка Import as a Mesh позволяет импортировать исходный файл как Mesh. Текстуры при этом слетают, именно поэтому перед конвертацией в прокси, лучше отдельно сохранять итоговый вариант модели.
Как пользоваться прокси в Corona
Теперь расскажу, как пользоваться этой полезной функцией, если вы используете визуализатор Корона.
Настройки
Переходим в Modify. Тут все примерно также, как и в случае с VRay.
Кнопка Duplicate to Mesh импортирует в сцену оригинальный объект в меше.
В первой части урока я расскажу, как использовать объект mr Proxy. Собственно в этом нет ничего сложного, но меня удивляет неоднозначное отношение к нему. В форумах некоторые сетуют, что прокси не дают экономии во времени рендеринга, а ожидают того, что чуть ли на 386 процессорах можно обсчитывать огромные сцены. А некоторые высказываются, что в проксях толку нет – только вред. В этом уроке мы на реальных цифрах посмотрим на целесообразность данного объекта. Во второй части мы рассмотрим один из частных случаев оптимизации сцены под быстрый обсчет. В уроке я не буду выкладывать файлы сцен, так как в первой части все элементарно, а во второй части я хочу, чтобы исполняющие сами сделали шейдерный материал, тем самым поняв гибкость шейдерной структуры. Урок исполняется в 3ds Max 2009. Рассчитан на пользователей кто знаком с интерфейсом Макса, ну и конечно желателен опыт работы в нем, чтобы понять целесообразность различных действий.
Часть первая – Proxy
Create – Geometry – mental ray – mr. Proxy
На сцену кладется пустой контейнер. Заходим в свойства созданного mr Proxy, верхняя графа – Source Object – жмем на кнопку с надписью None и мышкой щелкаем по объекту, который хотим сделать прокси-объектом.
Добавлять можно только один объект! Группы объектов и сборки также невозможно добавить в одну проксю. В сети существует скрипт, позволяющий автоматически объединить несколько объектов и сохранить их как прокси-объект, но при совмещение сложных объектов происходить сбой (у меня по крайней мере), поэтому следует помнить пословицу о бесплатном сыре, да и объединить несколько объектов в одну сетку (мэшь) руками не так уж и сложно.
При добавлении в сцену Proxy-объектов, сначала нужно создать пустой mr Proxy, затем в настройках нажать кнопку на поле «Proxy File» и указать путь к файлу объекта.
Важно: При указании имени и расположения файла прокси-объекта, Макс запоминает только линк объекта, открытие файла не происходит! Если проводиться работа группой из нескольких человек над одной сценой, то расположенные на сцене прокси-объекты могут меняться и усовершенствоваться. Открытие файла прокси происходит только при рендере сцены, соответственно и изменения исходного файла учитываются на этот момент. Если файл по указанному пути отсутствует, то рендер выдаст сообщение об этом.
Под окном просмотра раздел порта анимации: «Animation Support». Если при сохранении прокси-файл сохранялся в несколько кадров, то их можно все (или часть) включить а анимацию нашей сцены. Включив параметр «Ping-Pong Replay» можно зациклить анимацию прокси-объекта, на продолжительность всей сцены.
С созданием и добавлением прокси вроде разобрались, теперь про материалы:
В прокси-объект материал не сохраняется! Поэтому при создании возьмите пипеткой материал с создаваемого объекта (если он заранее не подготовлен) и сохраните его в библиотеку, для последующего использования. После добавления proxy-объекта на него можно просто добавить сохраненный материал (структура мэша на уровне элементов сохраняется, поэтому использование multi-sub материала возможна).
В Хелпе на mr Proxy упоминается использование материала «Xref». На мой взгляд использование этого материала актуально только в работе группой, тем не менее давайте его разберем.
Материал X-Ref это материал-ссылка на материал другой сцены.
В настройках путь к файлу сцены (донора) и имя объекта (донора) на указанной сцене:
Важно: Материал берется с указанного объекта, по его имени, а не из редактора материалов. Данные по материалу считываются один раз и сохраняются, дальнейшее изменение материала на объекте доноре не приведет к изменению материала XRef. Для обновления данных по материалу необходимо будет перевыбрать объект донор.
Давайте закончим с теоретической частью и посмотрим эффект от применения прокси на практике.
Для примера я на плоскость состоящую из 2 полигонов добавил 10 одинаковых деревьев (пока без листьев) с усложненной, TurboSmooth’ем сеткой. Итого получилась сцена с четырьмя с половиной миллионами полигонов: (тестирование на машине с E4400 – 2х2Ghz и 2Гб ОЗУ)
Рендерим (GI с минимальными настройками качества)
Рендер 5 минут 30 секунд.
Макс с открытой сценой занимает 322 мегабайт ОЗУ, во время рендеринга используется 1348 мегабайт ОЗУ (в объем ОЗУ включена и ОС и все что у меня висело в трее, то есть это общий расход ОЗУ)
Теперь заменяем все деревья на прокси (для чистоты тестирования удобно полностью копировать параметры положения, наклона и масштаба объекта донора на те же параметры прокси)
Рендер 4 минуты 42 секунды. (Я не стал приводить картинку рендера, она один к одному – отличий нет совсем)
Макс с открытой сценой занимает 282 мегабайта ОЗУ, во время рендера используется 1170 мегабайт ОЗУ.
Время рендера отличается не сильно (на некоторых сценах, это вообще не заметно), а вот экономия ОЗУ очень сильная!
В общем-то последствия ожидаемые, так как рендерить объект из прокси все равно приходиться, учитывать в распространении фотонов тоже, пусть он и представлен в удобном для рендера формате. Отсюда и небольшая разница по времени. А вот из-за того что сам объект не сидит в ОЗУ, а грузиться с диска мы получаем существенную экономию используемой памяти.
Это особенно актуально на машинах с 32-битной системой. Простой пример:
ИТОГ: Proxy экономит оперативную память компьютера, за счет удаления информации об объекте со сцены на диск, что позволяет нам делать более масштабные сцены, и немного экономит время рендера, за счет оптимизированного представления информации о файле.
Часть вторая – экономим время
А как же «все и сразу и чтобы ничего за это не было!» как сэкономить и ОЗУ и время рендера? Вот об этом мы и поговорим во второй части. Для этого перенесемся на совсем слабую машину (с точки зрения 3d графики слабую) это будет :
Можно сказать просто продвинутый офисный компьютер.
Я изобразил не бог весть какой сложности зданьице с минимальном количеством полигонов:
И хочу его обсчитать с большим количеством фотонов и хорошими настройками FG, а еще я хочу обсадить его деревьями!
В результате одиночное здание обсчитывается за 6 минут, а в виде:
Давайте подумаем что нам надо от второстепенных объектов (наших деревьев) – нам нужно чтобы они были объемными (то есть растровым изображением их не заменить), они должны отбрасывать тени, они должны освещаться, а вот эффекты игры света от непрямой иллюминации могут быть не очень точными – лишь бы было подобие.
Спасет нас материал Ambient Occlusion!
Мы можем исключить деревья из непрямой иллюминации, оставив только получение FG (а если не использовать фотометрическую экспозицию и светящиеся материалы можно убрать и получение FG), а все эффекты освещения получим на материале сами.
Итак Ambient Occlusion
Теорию данного материала описывать не буду, кому интересно вот статься Игоря Сивакова:
Также описание настроек и действие упомянуто в моем уроке:
В двух словах Ambient Occlusion имитирует Глобальное освещение на материале путем учета окружающей геометрии, без учета источников света.
Остановлюсь только на 4 нужных нам сейчас параметрах шейдера Ambient/Reflective Occlusion (3dsmax)
Spread – качество размытия границ:
Теперь создадим материал на основе этого шейдера для самого сложного объекта – листьев моих деревьев.
1. Корневой материал «mental ray»
2. Слот Surface (а позже скопируем результат и в Shadow) карта «Mix»
3. То что отсекает маска – будет прозрачным (ставим шейдер Transmat), то что осталось – шейдер Ambient…..
4. В слот Bright я поставил DGS материал с растром листа дерева, а в слоте Dark можно оставить черный цвет, либо тот же материал, но с темной растровой картой.
Весь процесс я изобразил на схемке:
Для поверхностей, где не нужна карта прозрачности(ствол дерева), можно сразу в раздел Surface материала mental ray ставить шейдер Ambient/Reflective Occlusion (3dsmax)
Если мы имитируем эффект глобального освещения, то объекты к которым будет применяться такой материал (деревья) должны быть исключены из расчетов настоящего глобального освещения:
Выделяем все то что у нас не будет участвовать в расчетах(у меня это деревья), правый клик мышки и заходим в свойства объекта, закладка mental ray:
Устанавливаем переключатель для FG в положение Invisible to FG, для Глобальной иллюминации ставим галку на Exclude from GI. Есть еще один параметр – Receive Illumination from FG, это получение результата освещения объектом от расчета FG, на быстродействие он влияет не сильно, а вот при больших значениях экспозиции может сильно попортить яркость картинки, поэтому этот параметр я оставил.
Теперь тестовые рендеры (слева освещаем GI с обычными материалами, справа деревья исключены из GI и материал с АО)
Почему-то результат справа мне нравиться больше.
Результат виден невооруженным взглядом!
Думаю после просмотра результатов урока Вы задумаетесь перед тем как нажать кнопку RENDER – а стоит ли облегчить расчеты компьютеру и получить экономию во времени? А время как известно это деньги!
Обзор объектов Proxy | VRayProxy
Обзор VRayProxy.
Экспорт меша в файл.
Перед тем, как вы импортируете меш через объект VRayProxy, вам сначала необходимо создать файл с мешем. Вы можете это сделать одним из следующих способов:
Импорт меша из файла
Экспортированный меш, связанный с объектом VRayProxy, можно в любой момент импортировать обратно в меш. Импорт меша из объекта VRayProxy можно сделать двумя способами:
Функция возвращает массив, содержащий вновь созданные объекты типа EditableMesh, или undefined, если не было указано ни одного допустимого объекта VRayProxy.
Диалог Mesh Export
Диалог Mesh Export позволяет вам указать имя файла для экспорта, а также некоторые другие опции.
Preview type – это метод создания предварительного просмотра меша от исходной геометрии. Предыдущие версии V-Ray использовали «face skipping».
Vertex Clustering – использует равномерную сетку с более одной вершиной в каждой ячейке. Очень быстро и надежно, но не сохраняет мелкие детали.
Refined Clustering – этот алгоритм использует два этапа группирования вершин, делая половину работы. Затем более сложный, но более медленный алгоритм заканчивает упрощение меша. С этим методам качество меша увеличивается, чем просто с группировкой вершин, но процесс значительно замедляется.
Face skipping – выбирает случайные фейсы от исходного меше.Это самый быстрый алгоритм, но не работает на связанном меше.
Faces in voxel – максимальное количество фейсов в в вокселе после voxel subdivision.
One voxel per mesh – каждый объект меша будет занимать voxel.
Create Multi/Sub-Object Mtl – этот параметр доступен, когда экспортируется несколько объектов с разными вариантами. При включении, V-Ray назначит Multi/Sub-Object на создание прокси, а соответствующие материалы будут автоматически назначены на соответствующие фейсы.
Condense Multi Mtl – при включении, V-Ray гарантирует, что экспортируются только уникальные материалы.
Нажатие на кнопку OK создаст файлы мешей и прокси-объекты. Процесс экспорта может занять некоторое время, зависящее от количества геометрии, которое должно быть обработано.
Пример: Параметр Lowest Level Point Size
Этот пример демонстрирует работу параметра Lowest level point size. Более низкие значения означают, что для аппроксимации оригинальной геометрии на самом нижнем уровне (объект находится очень близко к камере) используется большое количество дисков малого радиуса облака точек. Увеличение этого размера будет давать более грубую аппроксимацию с меньшим количеством дисков большего радиуса. При визуализации невозможно достигнуть лучшей детальности, чем она есть на самом нижнем уровне.
Поддержка Alembic
Начиная с версии V-Ray 2.40, объект VRayProxy может загружать и визуализировать файлы в формате Alembic (.abc). В настоящее время распознаётся только геометрия типа меш (без сплайнов или частиц).
Сейчас UV-координаты в файле Alembic импортируются как канал преобразования (mapping channel) 0. Это означает, что в текстурах типа Bitmap, для материалов, присвоенных объектам Alembic-proxy, необходимо выбирать тип преобразования Vertex Color Channel:
V-Ray будет распознавать информацию о скорости (velocity) для эффекта смазывания при движении (motion blur), если она сохранена либо как стандартная скорость для Alembic, либо как свойство типа 3d vector array, именованное как arbGeom.v или arbGeom.velocities.
Дополнительные наборы цветов Alembic импортируются как каналы преобразования (mapping channels) с индексами, большими чем 0 (т.е. 1, 2 etc).
Создание прокси-объекта
Параметры Proxy.
Display
show whole mesh – предпросмотр всего меша целиком.
Animation
Import
Point cloud
Use if prsent – дает возможность использования данных облака точек, если они доступны.
Level multiplier –определяет способ загрузки уровней облака точек. Значение 1.0 означает, что уровень для загрузки точно определен расстоянием от камеры до объекта. Значение меньше 1.0 означают, что уровень будет с большей детальностью, чем требуется расстоянием. Значения больше 1.0 означают, что разрешение уровня будет меньше, чем определено расстоянием. Значение 0.0 означает, что ни одного уровня облака точек не будет загружено, а вместо него будет визуализироваться оригинальный меш.
First map channel – если включен Force first map channel, то это— указатель map channel.
Particles
Render mode – определяет, каким образом частицы визуализируются.
Sphere – частицы визуализируются в виде сферы.
Point – частицы визуализируются в виде точек.
Пример: Level multiplier.






Level multiplier 10.0
Proxy Mesh Visibility.
Эти параметры позволяют управлять видимостью компонент прокси в том случае, когда было экспортировано более одного меша. Видимость может управляться либо посредством имён объектов, либо посредством ID’ов объектов.
Lists type – определяет, как понимаются списки.
Alembic Mesh.
Эта секция содержит элементы управления прокси-объекта V-Ray, когда загружен файл Alembic (.abc).
Общие:
Mesh.
Hair
Width multiplier – это множитель позволяет контролировать толщину волос во время рендеринга.
Particles
Preview count – позволяет указать, какое количество частиц отображать во вьюпортах.
Width multiplier – определяет размер частиц при визуализации.
Примечения:
Proxy- как можно оптимизировать работу
Здрасте всем 3d любителям! Хотел уточнить, насколько правильно будет использование этого способа. Может я ошибаюсь.
Этот способ был для меня неочевиден. Все знают, что если сцену собирать с использованием proxy моделей, то ресурсы памяти очень экономятся. Собирал недавно большую сцену. Памяти не хватало и приходилось проксить. Процент таких моделей был большой. При сохранении save оказался очень быстрый. В чем дело? Дело все в том, что файл то очень маленький! Если так, то можно применять proxy чаще. А может вообще создать в библиотеках готовые дубликаты моделей уже в proxy?!
Насколько я знаю в vray есть такая возможность, что каждую модель из прокси можно перевести обратно в геометрию. То же можно и в corone. Так это же то что надо!
И я потратил время проведя такие действия: создал папку с проксями. При создании новой proxy, геометрию удалил (она не нужна, ведь ее можно вытащить снова). Сохранил max файл. В итоге- при marge в сцену получаем модель с уже присвоенной библиотекой материалов (не надо ее сохранять отдельно). Сцены всегда легкие. Если же мне нужна редактируемая геометрия, можно оставить резерную копию со всеми модификаторами. Хотя для множества сцен к примеру в экстерьере, это не нужно. Вот и собственно все
Только если у вас эти модели все на SSD. Да и то, оперативка быстрее. Иначе вместо оперативки будет постоянно использоватья медленный жёсткий.
Если я правильно помню, прокси нужны чтобы разгрузить оперативку, не более. Их нету смысла использовать в любом другом случае, рендер то всё равно будет таким же.
Я не увидел ни способа, ни вопроса, в вашем сумбурном изложении
можно, у меня сборник эверовский с деревьями весь в проксях. Да файл со сценой легкий, вьюпорт летает, но с количеством уникальных хайпольных моделей даже в прокси нужно быть поаккуратнее, иначе рендер потом может не стартовать длительное время, а иногда никогда)) И не забывать про инстансы, даже с проксями, а то будет бобо.
можно, у меня сборник эверовский с деревьями весь в проксях. Да файл со сценой легкий, вьюпорт летает, но с количеством уникальных хайпольных моделей даже в прокси нужно быть поаккуратнее, иначе рендер потом может не стартовать длительное время, а иногда никогда)) И не забывать про инстансы, даже с проксями, а то будет бобо.
Я так и расцитываю, что применяется конечно instanse.
А что значит мультиреюз? Не слушал раньше.
Может так онои будет. Не знаю, думаю деревья, растения и машины (я в основном экстерьер рендерю), врядли буду менять, если только материал. а их в сцене большинство.
Здрасте всем 3d любителям! Хотел уточнить, насколько правильно будет использование этого способа. Может я ошибаюсь.
И я потратил время проведя такие действия: создал папку с проксями. При создании новой proxy, геометрию удалил (она не нужна, ведь ее можно вытащить снова). Сохранил max файл. В итоге- при marge в сцену получаем модель с уже присвоенной библиотекой материалов (не надо ее сохранять отдельно). Сцены всегда легкие. Если же мне нужна редактируемая геометрия, можно оставить резерную копию со всеми модификаторами. Хотя для множества сцен к примеру в экстерьере, это не нужно. Вот и собственно все
























