Как работать с огромными сценами в 3d max


Работа с большими сценами или
«Как правильно собрать огромный генплан».
Судя по статистике на нашем сайте, чаще всего мы делаем визуализация для крупных жилых
 комплексов и коттеджных поселков. Порой эти проекты состоят из десятков многоэтажных 
корпусов, а 3D-сцены содержат огромное количество зелени, машин, людей и прочих
 объектов наполнения. Чаще всего, наш клиент не располагает окончательной версией
 материалов, поэтому нам пришлось научится делать подобные проекты в условиях
 многочисленных правок и изменений. Мы предпочитаем прорабатывать все сцены в 
3D и избегаем фотомонтажа, т. к. легче один раз поправить что-то в 3D, чем десяток
 раз внести изменения на стадии пост-обработки материала.
Как работать с огромными сценами в 3d max (на русском)., изображение №2
Это все одна большая сцена, из фотошопа только цветокоррекция.
Как работать с огромными сценами в 3d max (на русском)., изображение №3
Фрагмент рендера.
Самый частый вопрос, который нам задают:
 «Как вы рендерите такие огромные сцены? У вас 3D Max не вылетает? 
Может быть, у вас очень крутое железо?»
Нет, железо у нас самое обычное. Но мы работаем на основе двух важных принципов:
  1. Мы не прорабатываем то, чего не будет видно.
  1. Подход к организации работы над проектом. 
    Мы заранее учитываем возможность работы со сложными сценами.
После прочтения этой статьи, вам может показаться, 
что эти правила только замедляют работу. Но это обманчивое предположение. 
Эти принципы быстро входят в привычку, нужно только постоянно им следовать. 
В итоге вы сможете работать со сценой любого объема в сжатые сроки.
Конфигурация железа.
Начнем с типовой конфигурации компьютеров, на которых собираются наши проекты.
  • Процессор Intell i7 3770k
  • 32 GB Ram (память сейчас недорогая, не экономьте на ней)
  • SSD жесткий диск
  • Видеокарта GTX 650 2 ГБ
  • x64 Windows, позволяет обойти ограничение в 3Gb памяти.
Как видите, компьютеры мощные, но ничего особенного (ныне не актуально, 
было актуально в начале 2015г.)
Секрет успеха кроется в организации сцены и правилах работы. 
Пройдемся по главным моментам:
Поликаунт.
Как работать с огромными сценами в 3d max (на русском)., изображение №4
Количество полигонов, из которых собирается основная сцена, редко 
превышает показатель в 16 миллионов. 
Главное правило — количество полигонов должно быть оправданным. 
Мы не моделируем мелкие детали, не снимаем фаски на объектах, 
которые будут показаны издалека. В среднем, на один многоэтажный дом
 мы закладываем не более 200 тыс. полигонов.
Проще «на месте» доработать объект, который попадает локально в камеру, 
чем детально прорабатывать всю сцену.
Мы используем сглаживание «Turbosmooth» или «MeshSmooth» только там, где 
это действительно нужно.
Если объект менее 20 см. в размере, мы его не моделируем. Если же объект попадает в
 ближний ракурс, и обойтись без него не получается, то мы добавим его уже непосредственно
 под этот ракурс. Чтобы быстро найти самый высокополигональный объект в сцене,
 добавьте в меню «Select by name» колонку «Faces», и отсортируйте все объекты 
по количеству полигонов.
Как работать с огромными сценами в 3d max (на русском)., изображение №5
VrayProxy.
Мы активно используем «VrayProxy», и конвертируем в него все объекты по 
следующим критериям:
  • объект будет активно копироваться в сцене
  • объект имеет в себе слишком много полигонов
Это очень важно, особенно это касается деревьев, кустов и автомобилей, 
так как в них больше всего полигонов и чаще всего мы активно копируем их в сцене.
Рекомендуем заранее перевести объект в «VrayProxy», и импортировать в сцену. 
Не стоит делать конвертацию в «VrayProxy» в основной рабочей сцене, это может 
привести к ошибкам.
После того, как объекты «VrayProxy» расставлены в сцене, включите режим отображения 
«Bounding Box». Так вы разгрузите «Viewport» и снизите нагрузку на видеокарту. 
Актуальнее всего делать это в сценах с большим количеством объектов «VrayProxy».
Как работать с огромными сценами в 3d max (на русском)., изображение №6
Совет: Копию типа «Instance» каждой уникальной «VrayProxy» (например каждое уникальное дерево) можно вынести за пределы рабочей области сцены, и собрать все «Proxy» в одном месте. Это позволит быстро менять режим отображения всех «VrayProxy» в сцене. Рекомендую обвести эту область сплайном типа «прямоугольник» - так вы не упустите мелкие «VrayProxy» типа цветов или кустиков. Этот «набор зеленки» очень удобно экспортировать в другие сцены.
Используя данный подход, вы будете иметь в своем арсенале готовые наборы объектов «VrayProxy», из числа наиболее часто используемые в работе. Вам не придется тратить дополнительного времени на их подготовку.
Этот совет не относится к основным объектам, которые вы показываете в сцене - таким как дома. Причина банальна — они постоянно изменяются из-за отсутствия окончательных материалов. Для оптимизации домов мы используем «Xref», об этом я напишу ниже.
Копирование объектов.
Если вам нужно размножить объекты, которые вы не собираетесь редактировать в дальнейшем, используйте тип копирования «Instance». Если объектов больше 20, то лучше использовать «MultiScatter».
MultiScatter.
«MultiScatter» используется нами повсеместно, особенно при копировании зелени и большого количества повторяющихся объектов, таких как: листва у дороги, практически вся зелень, трава и прочие повторяющиеся объекты.
Рекомендуем заранее подготовить пресеты «MultiScatter» для основных копирующихся элементов, это позволит сэкономить время.
Общий совет: по максимуму используйте готовое.
Для того, чтобы не путаться и иметь возможность быстро отключать и редактировать нужный «Scatter», мы выносим объекты «MultiScatter» и исходные «VrayProxy» за сцену в одно место. Далее объединяем их в группы и делаем подписи к ним. Таким образом, любой сотрудник может легко разобраться в сцене.
Как работать с огромными сценами в 3d max (на русском)., изображение №7
Xref
File > References > Xref scene
Мы используем «Xref» , чтобы оптимизировать работу над проектом. Это особенно актуально, когда над одним проектом работает несколько специалистов. Используя «Xref» вы сможете:
  • собирать сцену из нескольких частей.
  • каждый сотрудник сможет работать над своей частью сцены, независимо от коллег.
  • общая сцена будет постоянно обновляться, так удобнее «поднимать» генплан.
Как работать с огромными сценами в 3d max (на русском)., изображение №8
Пример: основная сцена проекта scene.max, которая содержит в себе генплан, растительность , автомобили и прочие объекты. Дома для этого проекта находятся в отдельных сценах «house1.max», «house2.max» и т. д. Здания «house1» и «house2» загружаются в сцену «scene.max» из отдельных файлов. Они не доступны для редактирования в «scene.max», но рендерятся вместе с ней. Быстро и удобно.
Как работать с огромными сценами в 3d max (на русском)., изображение №9
Как работать с огромными сценами в 3d max (на русском)., изображение №10
При необходимости, можно отключить отображение этих домов во вьюпорте — это сильно экономит ресурсы. В то же время, со сценами «house1» и «house2» могут работать моделеры, не открывая основную сцену «scene.max», с которой работает визуализатор. Таким образом, рабочий проект у нас состоит из нескольких сцен: основная сцена в которой собирается проект, и дополнительные сцены, в которых содержатся здания или объекты, по отдельной сцене для каждого объекта. Согласитесь, это очень удобно для совместной работы команды, когда никто никому не мешает.
Всегда используйте «Xref», если ваш проект состоит из нескольких зданий или объектов, особенно, когда над проектом работает несколько человек, и возможны правки.
Как работать с огромными сценами в 3d max (на русском)., изображение №11
Один из ракурсов проекта
Слои
Для удобства и оптимизации работы мы активно используем слои. Они позволяют временно отключить группу объектов, которая в данный момент не нужна.
Как работать с огромными сценами в 3d max (на русском)., изображение №12
Всегда отключайте слои, с которыми вы в данный момент не работаете.
Текстуры
Мы используем только текстуры в формате JPEG. Мы не рекомендуем использовать текстуры в формате TIFF и PNG, так как они занимают много памяти и сильно снижают общую производительность.
Материалы
Используйте только материалы плагина «Vray». Если вы импортируемая модель со стандартными материалами — прогоните её через плагин «Vray mtl converter». Он автоматически конвертирует все материалы в формат «Vray» и исключит возможные ошибки и косяки отображения. Рекомендуем время от времени проверять большие сцены этим плагином — очень часто стандартные материалы всё равно умудряются просачиваться в сцену. Так вы исключите эту возможность. Стандартные материалы могут стать причиной вылетов при рендеринге.
Используйте одну копию одного материала во всей сцене. Не дублируйте его без необходимости. Например, если один материал входит в состав «MultiSub», то копируйте его туда, используя метод копирования «Instance».
Оптимизируйте количество параметра «subdivs» в материалах. Не стоит завышать их без необходимости, стандартное количество «subdivs» «8-20». На отражающих объектах с использованием параметра «glossy» количество «subdivs» иногда требуется увеличить. Например до значения «30», иначе может возникнуть шум.
Оптимизация вьюпорта
Оптимизированный вьюпорт — залог быстрой и эффективной работы.
Для удобства работы с большими сценами во вьюпорте, мы используем следующие правила:
  • Используем режим «Nitrous» во вьюпорте при сборке сцены.
  • Отключаем отображение текстур, если в данный момент не требуется работать с UVW Map. Все текстуры можно отключить во вкладке Display > Shaded: object Color.
Как работать с огромными сценами в 3d max (на русском)., изображение №13
  • Отключаем отображение всех Xref, с которыми мы в данный момент не работаем.
  • Многополигональные объекты (которые по каким-то причинам не переведены в «VrayProxy», например бордюры) лучше поставить в режим отображения «Box».
Как работать с огромными сценами в 3d max (на русском)., изображение №14
Все объекты «VrayProxy» и «MultiScatter» выносятся за пределы рабочей области в сцене, и подписываются своими названиями.
Как работать с огромными сценами в 3d max (на русском)., изображение №15
  • Все объекты «VrayProxy», работа с которыми не ведется, отображаются как «Box».
  • Все объекты «MultiScatter», настройку которых вы уже произвели, установите на минимальные значения в параметре «Preview», «Preview type: Box».
Как работать с огромными сценами в 3d max (на русском)., изображение №16
Используем режим «Adaptive Degradation» в настройках вьюпорта
Как работать с огромными сценами в 3d max (на русском)., изображение №17
  • Используйте логические группы. Например, все деревья можно красить в один цвет в параметре «Object color». Так вам будет проще ориентироваться в сцене, а в качестве бонуса вы получите удобные маски при рендере.
  • Используйте «Viewport clipping» при моделировании.
Рендер. Превью.
Чтобы быстро внести изменения в сцену, мы активно используем метод просчета «Region render», и рендерим только ту область, которая изменяется. Для внесения изменений и быстрого превью мы отключаем все объекты «multiscatter» и «proxy», которые в данный момент не нужны. Таким образом не тратится время на выгрузку эти объектов в память — рендер ускоряется в разы. Для быстрого отключения вам пригодится та самая область, в которую вы вынесли все уникальные объекты «multiscatter» и «proxy». Тем более, в хорошей сцене все эти объекты подписаны :)
Подготовка сцены к рендеру.
В нашей студии все изображения рендерятся при помощи «distributive render» несколькими компьютерами. Для избежаний каких-либо проблем, связанных с параллельным рендерингом, необходимо соблюдаться ряд правил:
  1. Не должно быть потерянных текстур. Сцена при открытии не должна выдавать сообщение о потерянных текстурах. Пути к потерянным текстурам можно восстановить через «AssetTracking» (Shift+T), если текстуры найти не возможно, замените их на «пустышки» серого цвета с таким же названием и расширением файла.
Совет: при импорте или мердже модели из библиотек в рабочую сцену, проверяйте и оптимизируйте ее в отдельной чистой сцене. Это позволит исключить проблемные материалы, потерянные текстуры и прочие неприятности.
2. Сцена не должна содержать кириллицу или любой другой язык в названиях объектов, материалов, названии сцены и т. д. Только латинские символы. Сетевой рендер не поддерживает кириллицу, это приведет к ошибкам при сетевом рендеринге.
3. Сцена не должна содержать стандартные и Raytrace материалы. Это приводит к зависаниям сцены, вылетам или пятнам.
Совет: перед рендерингом пользуйтесь стандартным конвертером материалов Vray — правый клик в сцене, «conver all materials to vray».
Как работать с огромными сценами в 3d max (на русском)., изображение №18
Мы используем рендеринг по сети, поэтому все рабочие файлы должны быть на сервере. Мы не храним файлы на локальном компьютере, т. к. в этом случае на рендере появятся места без текстур или потерянные прокси.
Типовые настройки рендера выглядят так
Типовые настройки рендера выглядят так
Vray Global switches:
Reflection/refraction max depth: 3 — этого параметра хватает для большинства сцен. Не рендерятся лишние переотражения. При необходимости, можно увеличить.
Vray: System
Default geometry: Static
Dynamic memory limit: 30000Mb
Это значительно ускоряет рендер.
Надеюсь мои советы помогут вам работать с очень большими проектами.

Previous
Next Post »