Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

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

Читайте также:
  1. IV. Настройка панели задач
  2. Включение и настройка генератора
  3. ИЗМЕНЕНИЕ ПАРАМЕТРОВ, РЕГУЛИРОВАНИЕ И НАСТРОЙКА
  4. Интерфейс настройки фотонных карт в mr 3.3 для 3ds max
  5. Капремонт и настройка сцепления от ТМЗ-клуб
  6. Настройка MS Windows Explorer
  7. Настройка Radmin Server

Mental ray 3.3 для 3ds max

Часть 1. Метод фотонных карт. Final Gathering

 

В первой части обзора рассматриваются основные методы, используемые mental ray при расчете освещения трехмерных сцен с учетом многократных переотражений света между объектами (Global Illumination) – метод фотонных карт (Photon map) и Final Gathering, а также некоторые новшества, появившиеся в mental ray версии 3.3 и имеющие непосредственное отношение к рассматриваемым методам.

Общий алгоритм расчетов с использованием GI

Общий алгоритм расчета освещения с использованием Global Illumination в mental ray может быть разделен на два больших этапа – light pass и view pass.

На первом этапе, light pass, происходит испускание фотонов от источников освещения, трассировка их столкновений с поверхностями объектов и создание фотонных карт для последующего использования. На втором этапе, view pass, выполняется испускание лучей из камеры через плоскость изображения в сцену, учитываются настройки антиалиасинга и производится отслеживание пересечений и переотражений этих лучей на заданную глубину для всех поверхностей трехмерных объектов в сцене. Для точек пересечений рассчитывается прямое освещение, затенение, отражения и преломления прозрачными поверхностями и учет диффузного освещения от других объектов при помощи созданных ранее фотонных карт и/или методом Монте-Карло. Метод Монте-Карло в mental ray получил специальное название – Final Gathering (FG), или "окончательный сбор". Рассчитанные освещенности и тени комбинируются и формируют финальное изображение – рендер трехмерной сцены.

Рассмотрим каждый из этапов более детально.

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

Фотонные карты

Метод фотонных карт известен уже довольно хорошо известен, поэтому, я приведу лишь последовательность шагов, выполняемых при расчете фотонных карт с краткими пояснениями.

Расчет освещения с использованием фотонных карт состоит из следующих этапов:

Испускание фотонов

В соответствии с типом источника света (omni, spot, directional или area) определяются начальные направления испускания лучей. Каждому лучу присваивается определенное значение энергии, задаваемое в настройках источника. Именно благодаря последнему обстоятельству, лучи света и называют "фотонами". Другими словами, "фотоны" компьютерной графики не имеют ничего общего с фотонами из физики, а лишь отражают факт, что в GI "лучи света" обладают энергией. С другой стороны, фотоны, как и всякий геометрический луч, не имеют диаметра или радиуса, но имеют длину.

Трассировка фотонов

После испускания фотона источником, его траектория отслеживается до первого пересечения с поверхностью. В точке пересечения учитываются свойства материала, присвоенного трехмерному объекту. В частности, диффузные свойства и свойства отражения и преломления по коэффициентам, заданным в настройках материала. Дальнейшая судьба фотона определяется методом "Русской рулетки" с учетом свойств материала в месте столкновения – фотон может быть поглощен и на этом его путь заканчивается, диффузно отражен, отражен зеркально или преломлен прозрачной поверхностью.

Одним из важных требований mr, предъявляемых к материалам, является принцип физической корректности. Его суть состоит в том, что сумма коэффициентов диффузного и зеркального отражения и коэффициента преломления не должна превышать единицу. Только при выполнении этого условия "Русская рулетка" обеспечивает корректное рассеяние фотонов при взаимодействии с поверхностью.

После этого траектория фотона прослеживается до следующего пересечения, где процесс повторяется. Количество возможных столкновений фотона определяется глубиной трассировки фотона в настройках рендера. Если поверхность обладает диффузными свойствами (то есть, не является чисто зеркальной, например) информация об энергии фотона, координатах его столкновения с поверхностью и направлением прилета сохраняется в специальной базе данных, получившей название "фотонная карта". Самое первое столкновение фотона не записывается в базу, поскольку оно является прямым освещением и рассчитывается другими методами.

Трассировка фотонов продолжается до тех пор, пока заданное в настройках рендера количество фотонов не будет отслежено и информация об их столкновениях не будет записана в фотонную карту. Особенностью mr является то, что в настройках указывается количество фотонов, которые должны быть сохранены в фотонной карте, а не количество испущенных источником фотонов. Поэтому, mr испускает столько фотонов, сколько необходимо для сохранения заданного числа. Количество испущенных фотонов всегда больше, чем количество сохраненных, mr отслеживает это соотношение и в определенных ситуациях может выдавать предупреждающие сообщения. Это не обязательно свидетельствует об ошибке, хотя, если после испускания миллиона фотонов ни один не был сохранен, расчет будет прекращен.

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

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

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

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

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

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

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

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

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

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

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

 

 


Параметры настройки фотонных карт в mental ray для 3ds max, закладка Indirect Illumination

Существует основополагающая формула, используемая для оценки освещения в произвольной точке поверхности по заданному количеству фотонов:

 


Оценка освещения точки поверхности по заданному количеству фотонов

здесь

Из этой формулы следует несколько важных свойств.

Во-первых, результат расчета зависит от свойств поверхности. Во-вторых, расчет освещения является суммой вкладов энергий заданного количества фотонов. В-третьих, величина вклада от конкретного фотона зависит от расстояния между точкой и этим фотоном. Чем дальше расположен фотон, тем меньше его вклад.

Для практики расчета более полезным является правило, связывающее количество собираемых вблизи точки фотонов с плотностью фотонной карты в этой точке и радиусом сбора:

2) N = (плотность фотонной карты в точке x) х pi х r ^2,
где

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

Из правила (2) вытекает ряд важных свойств, которые являются основными в практике настроек:

3а) увеличение плотности фотонной карты в n раз (или, что то же самое, увеличение размера фотонной карты в n раз) позволяет собирать в n раз больше фотонов при том же радиусе сбора или уменьшить радиус сбора того же количества фотонов в корень квадратный из n раз;

Пример:
Если при данной плотности фотонной карты вблизи точки собирается 100 фотонов в пределах площадки радиусом в 10 см, то увеличение размера фотонной карты в 4 раза позволяет:

3б) если плотность фотонной карты неизменна, то увеличение/уменьшение радиуса сбора в n раз приводит к увеличению/уменьшению количества собираемых фотонов в n^2 раз.
Пример:
Если плотность фотонной карты такова, что 100 фотонов собирается с площадки радиусом 10 см, то увеличение радиуса сбора в два раза приведет к увеличению сбора фотонов в ее пределах в 4 раза, то есть в пределах площадки радиусом 20 см будет собрано 400 фотонов, а в пределах радиуса в 5 см – только 25 фотонов.

3в) если требуется увеличить/уменьшить число собираемых фотонов в n раз, то для этого необходимо:

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

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

В качестве примера рассмотрим свойства фотонной карты небольшой плотности для конкретной сцены. Установим в настройках, чтобы фотонная карта содержала 50 тысяч фотонов на источник света (их в сцене два), и будем исследовать при каком радиусе можно собрать 200 фотонов. Я устанавливаю начальное значение радиуса сбора в 1 см (что заведомо меньше, чем необходимо) и буду увеличивать радиус сбора, пока изображение не перестанет меняться. Значение радиуса, при котором изменения перестанут происходить и будет приблизительным фактическим радиусом сбора 200 фотонов. Чтобы не пересчитывать фотонную карту при каждом изменении радиуса, при первом просчете фотонная карта сохраняется в файл. В качестве ориентира можно использовать рендер с большим радиусом сбора:

 


Рендер с большим радиусом - 4 метра

Теперь устанавливаем маленький радиус и постепенно увеличивая его, находим минимальное значение, при котором рендер перестает меняться (становится идентичен рендеру с большим радиусом).

 


Начинаем с радиусом в 1 см и постепенно увеличиваем его

Найденное значение радиуса составляет приблизительно 44 см:

 


При радиусе сбора в 44 см рендер практически перестает меняться и становится идентичен рендеру с радиусом сбора 4 метра

Таким образом, для примера данной сцены, 200 фотонов собираются с площадки фактического радиуса не более 44 см. В тех местах, где плотность фотонов выше, этот радиус будет меньше. Можно дополнительно воспользоваться диагностическим рендером, показывающим карту распределения плотности фотонов в сцене.

 


Диагностический рендер, показывающий распределение плотности фотонов в сцене

Это так называемая false-color диаграмма, где каждому цвету (температуре) соответствует определенное значение плотности. Красный цвет – самая высокая плотность, синий – самая низкая, зеленый – промежуточная средняя плотность.

Теперь можно воспользоваться правилами (2) и (3а – 3в) для интерполяции фотонных свойств сцены. Например, если нужно чтобы 400 фотонов собиралось для оценки освещения точек трехмерной сцены с площадки радиусом не более 10 см, потребуется фотонная карта в 39 раз большего размера, чем текущая (50 000 фотонов), т.е. фотонная карта в 2 миллиона фотонов.

 


Рендер с фотонной картой в 2 миллиона фотонов, радиусом сбора 10 см и числом собираемых фотонов = 400

Хотя mental ray и позволяет не указывать в настройках радиус собираемых фотонов, его явное указание имеет целый ряд преимуществ. Во-первых, знание фактического радиуса сбора позволяет ориентироваться в точности вторичного освещения. Чем больше радиус сбора, тем больше размытость вторичных теней. Если радиус сбора фотонов превышает 10 см, тени вряд ли можно считать правильными.

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

Явное указание количества собираемых фотонов позволяет программе расчета гибко изменять в сцене радиус сбора фотонов в зависимости от плотности карты в данной точке (при этом максимальный радиус сбора не превысит заданный в настройках), что самым благоприятным образом сказывается на гладкости финального рендера.

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


Дата добавления: 2015-10-28; просмотров: 127 | Нарушение авторских прав


Читайте в этой же книге: Final Gathering | Свойства и использование Ambient/Reflective Ocllusion | Физическая модель подповерхностного рассеяния в mental ray – SSS Physical Material | Шейдер miss_physical | Тест 1. Расчет подповерхностного освещения методом однократного рассеяния | Тест 5. Текстурные трехмерные карты для коэффициента рассеяния | Часть 4. Упрощенная модель подповерхностного рассеяния SSS Fast | Материал miss_fast_simple_phen | Шейдеры группы miss_fast | Создание собственных материалов SSS Fast |
<== предыдущая страница | следующая страница ==>
Глава двадцать четвёртая| Интерфейс настройки фотонных карт в mr 3.3 для 3ds max

mybiblioteka.su - 2015-2024 год. (0.012 сек.)