Четверг, 16.05.2024, 15:25
Вы вошли как Гость | Группа "Гости" | RSS
 
РегистрацияВыходВход

.
1  2  3  4  5  6  7  8  9  10  11  12  13


Использование карты фотонов в VRay


Этот урок посвящен основной концепции и использованию карты фотонов в VRay. Мы использовали VRay 1.09.02e и Max 3.1.


Основная концепция

Photon mapping - это попытка воссоздать отраженное освещение( indirect illumination) в сцене с помощью трассировки лучей( названных фотонами, хотя они не имеют ничего общего с настоящими физическими фотонами в реальном мире), которые излучаются источниками света в сцене и переотражаются, а пересечение лучей с геометрией сохраняется в карте. Это полезно в некоторых ситуациях.Во - первых, источники света могут быть там, где трудно вычислять переотражение, основываясь на виде из камеры. Во-вторых, в сцене может быть такое количество источников света, что оценка того, насколько каждый из них участвует в освещении каждой конкретной точки может быть очень долгой. Третьим преимуществом карты фотонов (хотя в настоящий момент оно не используется в VRay) является возможность управления качесвом просчета в наиболее сложных местах сцены.

Конечно, карта фотонов дает только грубую оценку global illumination в сцене. Хотя она может использоваться для прямого просчета эффектов GI, обычно качество неприемлемое. Поэтому карта фотонов часто используется для ускорения более точного просчета Monte Carlo, который использует карту фотонов для расчета вторичноего переотражения GI secondary bounces.


Особенности photon maps в VRay

Global photon maps в VRay работает только с материалами VRay. Это ограничение может быть устранено в следующих версиях.

Несмотря на то, что photon mapping может использоваться со стандартными источниками света Max , VRay lights и стандартные направленные (direct) источники света более предпочтительны. В этом уроке учитывается эта особенность.



Простая сцена

Давайте начнем с очень простой сцены - чайник, стоящий на плоскости, освещенный VRay light. Создайте plane размером 200x200 units, в центре поставьте на нее чайник с радиусом 25 и segments-10; поместите VRayLight размером примерно 30x30 units где-нибудь над ним. Убедитесь, что источник света направлен на плоскость. Примените зеленый VRay material к чайнику и светящийся серый материал к плоскости. Выберите VRay как current renderer и отрендерите сцену (если сцена рендерится слишком мендленно, уменьшите стоящие по умолчанию subdivs у VRay light).

Вот так сцена выглядит без indirect illumination.

Если вы включитеGI , у вас должен получиться показанный ниже результат (заметьте, что цвет чайника отражается на плоскости и наоборот).

Только взгляните на photon mapping! В свитке Indirect illuminationвыберите Global photon map и для primary, и для secondary GI bounces. Все остальные значения оставьте по умолчанию и отрендерите сцену. У вас должно получиться нечто похожее:

Результат далек от желаемого, но отрендерен очень быстро и представляет собой более или менее точное распространение света в сцене. Перейдем теперь в свиток System и нажмем на кнопку Light settings. Выберите VRayLight из списка слева.

Опция Generate diffuse контролирует излучает ли источник света фотоны global illumination. По умолчанию - OnЗначение Diffuse subdivsопределяет число излучаемых фотонов. По умолчанию - 150, что означает 150x150 = 22500 фотонов распространяются источником. Увеличим это число до 300, закроем Light settings dialog и отрендерим снова.

Результат увеличения числа фотонов - пятна грязи теперь меньше. Тень от чайника тоже более точная. В общем, большее количесво фотонов дает больше теней от деталей ( мелкие предметы начинают отбрасывать тени), однако для этого требуется больше памяти. В большинстве случаев, когда вам нужно только черновое освещение GI, можно обойтись меньшим количеством фотонов.

Сейчас откройте свиток Global photon map во вкладке Render .

Поменяйте значение Max photons на 100 и отрендерите снова.

Результат почище, на также и более "смазанный". Параметр Max photons определяет число фотонов, которое будет использовано для расчета global illumination в данной точке. Если увеличить этот параметр, рендер будет более медленным, а изображение более чистым ( гладким - smoother). Поставьте снова значение Max photons 30.

Вы можете заметить, что когда photon map включена, VRay light больше не считается во время рендеринга. Так происходит, потому что включена по умолчанию опция Store direct light. При включенной Store direct light photon map сохраняет как прямое так и непрямое освещение. Если много источников света в сцене это значительно убыстряет рендеринг, так как для них не будет каждый раз осуществляться прямой просчет.Если вы хотите, чтобы для прямого освещения осуществлялся прямой просчет, выключите Store direct light .

В этот раз рендерилось дольше, так как прямое освещение считалось традиционно. Снова включите Store direct light .

Как оказалось, photon map может достаточно хорошо имитировать global illumination, несмотря на то, что картинки достаточно некачественные и изобилуют пятнами. Вы можете уменьшить пятнистость повышением Diffuse subdivs для источника света и параметраMax photons карты фотонов, однако это замедлит рендер и потребует много памяти. Другой способ добиться хороших результатов - использовать photon map вместе сDirect GI или с Irradiance map. Такое сочетание удобно, так как сочетает в себе высокий уровень детализации, обеспеченный Direct GI и irradiance map, в то время как photon map ускоряет просчет GI.

Выберите Irradiance map для first diffuse bounce, и снова отрендерите. Результат достаточно хорошо и очень похож на отрендеренный с помощью irradiance map и direct computation для secondary bounces.

Из-за своей простоты чайник на плоскости не самый удачный пример для photon mapping, поэтому для следующего урока возьмем сцену поинтереснее.



The Cornell box

Начнем с создания необходимого - цветных стен, трех VRay light и нескольких объектов внутри. Если вы сейчас отренедерите сцену, она будет темной и неинтересной, из-за отсутствия GI (уменьшите subdivs, если она рендерится очень медленно).

Включите GI, сцена станет немного лучше, но все равно немного темноватой:

Это можно исправить увеличением Secondary bounces multiplier до 0.85 и Secondary diffuse depth до 20, к примеру. Также поставьте GIMin rate -4, для немного более быстрого просчета irradiance map. Результат лучше, но просчет irradiance map немного медленнее. Теперь используем photon map, чтобы уменьшить это время.

Включите в First и Secondary diffuse bounces Global photon map. Перейдите в свиток Global photon map и задайте Bounces 20. Этим мы устанавливаем количество диффузных переотражений, просчитываемых photon map. Также поставьте параметр Retrace depth - 20 (этот параметр объясним попозже). В общем эти параметры желательны для Bounces и Retrace bounces .

Этот рендер очень быстрый и представляет собой довольно хорошую имитацию распространения света в сцене. Хотя, конечно, получилось очень грязно. Как было замечено в сцене с чайником, использование Direct GI или Irradiance map вместе с photon map позволяет избавиться от пятен. Поставьте в First diffuse bounces Irradiance map. Результат почти тот же, как и при использовании только irradiance map, но посчитан быстрее, так как irradiance map в этом случае использовала photon map для просчета secondary light bounces.

Давайте посмотрим на другие параметры global photon map. По умолчанию освещение в каждой данной точке считается photon map путем перебора близлежащих N фотонов (где N, по сути, значение параметра Max photons ), и распределение суумарной мощности по поверхности, покрываемой фотонами. Возможен предварительный просчет этих данных освещения в photon map. Включите опцию Convert to irradiance map, и в First diffuse bounces переключите на Global photon map и вы непосредственно увидите photon map.

Сейчас вы можете заметить , что VRay делает дополнительный проход (Converting photon map to irradiance map). Результат получается похожим на тот, как если бы использовалась одна photon map, только более читым (гладким). Кроме того, сейчас VRay перебирает только 10 близлежащих фотонов( значение параметра Interp. samples, расположенного ниже опции Convert to irradiance map), вместо 30. Это убыстряет рендер. Если вы рендерите с Irradiance map для first diffuse bounces, у вас получится почти такой же результат, как и до, но время прохода irradiance map будет даже быстрее.

Последние параметры, которые мы рассмотрим в этом уроке - Retrace threshold и Retrace bounces. Задайте Retrace threshold 0.0 и отрендерите картинку:

Сейчас irradiance map считается очень быстро, но появилось несколько дурацких артефактов по углам. Это потому, что photon map делает хороший просчет только для поверхностей, удаленных друг от дгуга. Узкие углы, помехи photon map влияют на результат, увеличивая число артефактов. Это можно убрать, используя в углах расчет GI с методом Monte Carlo вместо photon map. ПараметрRetrace threshold контролирует, что значат "узкие угла " для VRay. Когда он равен 0.0, retracing не считается. Большие значения уточняет просчет, но и замедляет рендер в целом. Давайте вернем значение Retrace threshold , которое было по умолчанию - 2.0.

Retrace depth контролирует максимальную глубину для вторичного просчета GI. В идеале, он должен быть равен числу Bounces в photon map. Из-за низких значений углы могут быть темными.

Включите Adaptive antialiasing при окончательном рендере.

Урок взят с сайта www.vrayrender.com Перевод И. Замыслова


Дата 16.05.2024 Время 15:25
Гора Ай-Петри
Поиск
Никитский ботанический сад


Крымские горы

Раскрутка Вашего сайта
Пасионаты / Санатории г.Ялты

Гостиницы / Отели г.Севастополя
Заработай на своем сайте!

Заработок для web-мастеров!

Покупка/продажа web-трафика



Copyright MyCorp © 2024
Использование карты фотонов в VRay