Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Mental ray 3.3 для 3ds max.docx
Скачиваний:
5
Добавлен:
01.09.2019
Размер:
9.59 Mб
Скачать

3. Создание фотонной карты

В результате отслеживания столкновений фотонов получается фотонная карта, содержащая записи о столкновениях. Каждая запись имеет размер в 18 байт: 12 байт для хранения трехмерных координат столкновения, 4 байта для значения энергии фотона, 1 байт для направления падения фотона и 1 байт для хранения флагов и указателей, связывающих записи между собой.

"Сырая" фотонная карта, которая получается непосредственно после завершения трассировки фотонов, содержит записи в совершенно беспорядочном виде – в том порядке, как отслеживались фотоны, и представляет собой полный хаос. Для того, чтобы фотонную карту можно было эффективно использовать в дальнейших расчетах, записи в ней упорядочивают определенным образом. А именно, так, чтобы записи о соседних по координатам столкновений фотонах, располагались рядом. Тогда запись о каждом фотоне содержит указатели на записи о двух других столкновениях фотонов, самых близких к ней. Такая структура записей называется базой данных kdtree типа и позволяет эффективно осуществлять поиск фотонов, ближайших к данному в пределах заданного радиуса поиска.

Упорядочивание базы данных совершенно самостоятельный процесс, который не может быть выполнен по частям. Это предъявляет определенные требования к объему памяти в системе, и если ее недостаточно для обработки всех записей фотонной карты зараз, происходит аварийное завершение расчетов с сообщением об ошибке. Это самое узкое место в расчете фотонных карт, поскольку определенное количество записей требует строго определенного количества памяти. Невозможность выполнить упорядочивание записей по частям ограничивает максимальное количество фотонов, которое может быть испущено в сцене. Для 32-битных операционных систем максимальный объем памяти, который может быть выделен для расчетов составляет приблизительно 2.6 гигабайта, вне зависимости от того, сколько фактически оперативной памяти установлено в компьютере.

Готовая фотонная карта хранится либо в оперативной памяти, либо может быть сохранена в файл на диске, откуда ее можно загрузить для повторного использования.

4. Использование фотонной карты при рендеринге

На этапе рендеринга (второй этап – view pass) фотонная карта используется для учета вторичных переотражений света между объектами сцены. Возможны два способа такого учета – прямое освещение и вклад от фотонов, либо прямое освещение и комбинация вклада фотонов с Final Gathering.

В первом случае учет вклада фотонов выполняется расчетом освещения по заданному числу фотонов вблизи точки и/или радиусу сбора фотонов в соответствии с настройками рендера (параметр Maximum Num. Photons per Sample группы настроек Global Illuminations в 3 ds max). Такой способ дает физически корректный результат, но из-за ограничения на память не позволяет получать "гладкий" рендер для малых радиусов сбора фотонов. Кроме того, имеются трудности с "черными углами", обусловленные особенностями сбора фотонов вблизи границ и углов объектов.

Во втором случае первый диффузный отскок рассчитывается точно методом Монте-Карло, а вклад от отскоков более высокого порядка оценивается по фотонной карте. Это позволяет уменьшить количество фотонов и получить гладкий рендер, но скорость вычислений будет гораздо ниже.

Настройка фотонных карт

Итак, фотонные карты используются для расчета (оценки) освещения точек, обусловленного вторичными переотражениями света между поверхностями объектов. Настройке подлежат:

  • энергия фотонов;

  • количество фотонов, участвующих в оценке освещения – параметр Maximum Num. Photons per Sample;

  • радиус сбора фотонов вблизи точки – параметр Maximum Sampling radius;

  • общее количество фотонов фотонных карт (плотность фотонных карт) – Average GI Photons per Light в настройках рендера или количество фотонов в свойствах источников света.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]