четверг, 18 июля 2013 г.

Neon Light в 3ds Max Mental Ray


С выходом 3ds Max 2014 у пользователей все еще нет возможности использовать геометрию в качестве источников света даже, несмотря на то, что в Mental Ray 3.11 появился шейдер builtin_object_light, который должен был восполнить сей досадный пробел. А так как в архитектурной визуализации геометрия в виде источника света в основном используется для создания неоновой и закарнизной подсветки, то о способе который я использую уже достаточно давно для получения физически корректных и не режущих глаз своей фальшивостью результатов, поговорим далее.

Идея данного метода заключается в том, чтобы вывести в отдельный рендер элемент распространение светового потока от неоновых светильников  только для тех объектов, которые находятся в зоне прямого освещения данными источниками  (далее Neon Light Render Element) для последующего компоузинга. 

Анализ сцены и создание необходимых материалов

Рассмотрим в качестве примера вот эту сцену:



Как видим, рендер данной сцены освещен только фотометрическими источниками света  и выполнен с использованием mr Photographic Exposure Control . Неоновая подсветка отсутствует. Допустим, по проекту, неоновая подсветка должна подсветить нишу и потолок  при закладке за соответствующие багеты, которые указаны на рисунке:




 Для создания Neon Light Render Element нам понадобится три материала:
  1. Самосветящийся материал для неоновой подсветки.
  2. Белый диффузный материал для фиксации распространения светового потока.
  3. Материал со свойствами "черной дыры", который способен поглащать свет .

Далее нам необходимо отключить все источники света. Назначить геометрии неоновых светильников материал Neon_Light_Material. Затем присвоить белый диффузный материал White_Diffuse_Material только тем объектам которые находятся в зоне попдания прямого света от неоновых светильников. Всем остальным объектам присваивается материал  "черной дыры" Black_Hole_Material. На данном этапе сцена должна выглядеть так:


Примечание: Если в зоне прямого освещения попадают зеркальные или стеклянные объекты, то эти объекты остаются при своих оригинальных материалах.

Визуализация

Если для камеры из которой будет производится визуализация не используются Clipping Planes, то визуализацию Neon Light Render Element выполним при помощи GPU паралельно расчетам основного прохода выполняемого mental ray. Для этого запустим две копии 3ds Max. В одной из копий откроем файл, готовый для визуализаци основного прохода. Во второй копии откроем подготовленный файл для Neon Light Render Element . Выберем для второй копии 3ds Max основным рендером Iray, где отключим использование CPU. В разделе Trace/Bounce Limits выберем Maximum Number of Light Bounce равное четырем и установим ограничение по времени в режим Unlimited. Фильтрацию используем такую же как и для основного прохода

Примечание: Нам не нужен полностью корректный результат глобального освещения неоновой подсветкой. Так как она является не основной, а декоративной, то для ее воспроизведения вполне достаточно только прямого освещения (Direct Light). Значение  Maximum Number of Light Bounce можно уменьшить до 2-х, если в зоне прямого света отсутствуют стеклянные и зеркальные объекты. Это ускорит визуализацию.



В обоих копиях 3ds Max жмем Render. Такой подход дает возможность по максимуму использовать вычислительные мощьности ПК. В то время как процессор выполняет рендеринг основного прохода в одной из копий 3ds Max при помощи mental ray, во второй выполняется рендеринг  Neon Light Render Element средствами Iray используя GPU. Рендер основного прохода занял 13 минут 58 секунд. На выходе я получил рендер основного прохода и  Neon Light Render Element. 





Примечание: Данная сцена не требовательна к вычеслительным мощностям процессора. Поэтому за почти 14 минут, которые занял рендеринг основного прохода, Iray не смог полностью избавиться от шума. Но для более сложных сцен, рендеринг которых занимает больше времени, Iray выдает бесшумные результаты.


Если используются Clipping Planes или геометрия не помещается в память видеокарты, то рендеринг Neon Light Render Element я выполняю при помощи mental ray FG Brute force со следующими настройками:


Так как мне нужен только световой поток, то я использую 1024 Rays per FG point. В Unified Sampling,  Quality равное 5  это наследственное значение основного прохода. 8 maximum samples это минимальное количество сэмплов для геометрии при котором алайзинг соответствует основному проходу. Смысл заключается в том чтобы сэмплер не перегружал себя при расчете геометрии, а был сосредоточен на световом потоке.  Чтобы понять, почему я использую именно эти настройки скачайте этот архив. В нем находятся сравнительные рендеры выполненые в 3ds max 2014, а так же настроеный файл для  Neon Light Render Element (3ds max 2012). В итоге я получил следующий результат со временем 15минут 45 сукунд:


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

Компоузинг в Photoshop

Перед тем, как использовать  Neon Light Render Element, выполняется вся необходимая постобработка. И только потом поверх, в режиме смешивания Screen, накладывается  Neon Light Render Element.


Если Neon Light Render Element выполнен при помощи FG brute force и на изображении виден шум, то избавиться от него можно при помощи фильтра Smart Blur со следующими настройками:


В результате я получил такой результат:


При желании используя Levels для слоя Neon_Render_Element можно усилить эффект свечения.



P.S. 

Я, например, знаю что Андрей Плаксин ака Scionik дорисовывает неоновую подсветку вручную в фотошопе. И если вам кажется что 15 минут для данного рендер элемента это много, то я не думаю что вы сможете нарисовать ее самостоятельно быстрее и так же качественно. Для меня данный способ наилучший, так как является физически корректным и дает максимально возможное качество. При его настройке используются физические, а не абстрактные единицы измерения, что делает для меня процесс создания неоновой подсветки интуитивно понятным. Для сравнения приведу фотографию одного из наших объектов, где использовался схожий вид закарнизной подсветки.



P.P.S.

Для настройки  Neon Light Render Element лучше всего использовать State Sets, где для одного состояния сцены сохранены настройки основного прохода, а для другого состояния сцены сохранены настройки для Neon Light Render Element описаные выше. Для тех, кто хочет узнать побольше о  State Sets,  Андрей Плаксин планирует в ближайшее время провести вебинар по этой теме. Так что следите за новостями в его блоге. 

1 комментарий:

  1. способ хороший. Но фотошоп со своей палочкой выручалочкой всегда потом выручает :-)

    Написал тебе в ЛС на render.ru, посмотри пжста.

    ОтветитьУдалить