Научная статья на тему 'Расчет освещения от карты окружения, заданной с большим динамическим диапазоном'

Расчет освещения от карты окружения, заданной с большим динамическим диапазоном Текст научной статьи по специальности «Математика»

CC BY
132
88
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Расчет освещения от карты окружения, заданной с большим динамическим диапазоном»

Расчет освещения от карты окружения, заданной с большим динамическим диапазоном

К.А. Востряков

Институт Прикладной Математики имени М.В. Келдыша РАН vostryakov@gin.keldysh.ru

Визуализация искусственных объектов в окружении реальной сцены требует вычисления освещения этого объекта излучением реальной сцены, которое может быть получено как сферическая фотография с большим динамическим диапазоном. Этот метод был предложен в работе [1] и стал сегодня неотъемлемой частью многих продуктов визуализации, поскольку позволяет «вживлять» искусственные объекты в фотографии и видео. Итак, необходимо вычислить отраженное излучение от искусственного объекта, заданного, допустим, треугольной сеткой и освещенного бесконечно удаленной картой окружения (далее КО). Математически это можно

Ь( х,а0) = | р( х,а,а0) Li (а)У (x,а)cosв dа выразить так: ° , где х - точка в на поверхности,

а, а>0 ^ L(х, а0)

0 - направления падающего и отраженного лучей света, 0 - отраженное

излучение, р(х,а,ао) - двулучевая функция отражения (далее ДФО), обычно для одного объекта не зависит от х, т.е. р( х'а'®о) = р(а,а°), А-(а) - падающее излучение от КО, бесконечно удаленного источника света независящего от х, У (х'а) - функция видимости, & - угол между нормалью к поверхности и направлением а, ^ -дифференциальный телесный угол, ^ - полусфера. Существует множество методов решения этого уравнения, с разной точностью и разной скоростью. Более быстрые, но менее точные (либо использующие предварительные вычисления) ориентированы на работу в реальном времени, а менее быстрые, но более точные ориентированы на получение высоко реалистичных изображений.

Визуализация в реальном времени

Для визуализации в реальном времени были предложены методы, которые

использовали предварительные вычисления для освещения от КО в реальном времени [2-4]. Проекция подынтегральных множителей в некоторый конечный базис позволяет сократить расходы по памяти и быстро осуществить интегрирование (свертку). Предложено множество разных конечных базисов для функций на сфере (полусфере): сферические гармоники [2], вейвлеты [3], кусочно-постоянные функции

[4]. В общем виде разложение по ортонормальным базисным функциям }

) Ь(*) «2 Ь % (*)

функции Ь(*) на ^ можно представить как г , где коэффициенты

Ц = | Ь(*)%. (*)^*

" . Тогда, если спроецировать еще одну функцию на тот же базис:

Т = |т(*)%(*)й* Iь(*)Г(*)ё* « 2ЬТ

" , то интеграл ° г , поскольку

С, = |% (*)%, (*¥*=£,

" - символу Кронекера.

Но у нас три функции под интегралом (С08 & не считаем, поскольку не зависит от

С1]к = |% (*)%, (*)%* Ш*

сцены) и число тройных ненулевых коэффициентов ° для

трехкомпонентной свертки обычно больше числа базисных функций N. Число

ненулевых тройных коэффициентов для сферических гармоник равно ^ = ), а

для вейвлетов Хаара ^ = 0(^ 1о§ ^). Только для кусочно-постоянных функций это

число равно 0^) [4]. Если функцию видимости заранее перемножить с освещением

или ДФО, то можно обойтись простым скалярным произведением. Но это приводить

к тому, что мы не можем менять в реальном времени в первом случаи освещение, во

втором - ДФО. При этом размерность предвычисленных функций возрастает. Таким

г р(*,*ЛУ(х, *) х, *,*0 Ь. (*)¥(х, *) х *

образом, ' 0' у ' ' начинает явно зависеть от ' ' 0, а г 4 ' у ' ' от ' , что

делает этот подход практически применимым только для маленьких сцен из-за затрат

по памяти.

Если хранить ДФО в глобальной системе координат, то она зависит от х. Задание ДФО в локальной системе координат значительно сокращает затраты по памяти, поскольку ДФО не нужно хранить во всех точках, где он одинаковый. Но это требует процедуры вращения ДФО, заданного в конечном базисе, из локальной системы координат в глобальную. Или наоборот: источник света поворачивается в локальную систему координат ДФО. Наиболее просто вращение задается для кусочно-постоянных функций. Вращение в этом базисе - это просто вращение базисных функций как говориться в [4]. Но за такой простотой скрываются определенные трудности. Во-первых, после вращения базисных функций мы имеем разложение уже по другому базису и, следовательно, не можем выполнять свертку также легко с функцией заданной в старом базисе. В работе [4] эту трудность обошли используя

таблицы суммирования для ДФО, они сворачивали ее с вращаемой КО, заданной в кусочно-постоянном базисе. Во-вторых, кусочно-постоянная функция не задается на сфере, а задается на плоскости, и после отображается на сферу. Если бы существовало «хорошее» отображение с плоскости на сферу, то вращение на сфере приводило бы к перемещению на плоскости. Но такого «хорошего» отображения не существует.

Генерация точек на КО

Для получения высокореалистичных изображений традиционно используется

трассировка лучей. Возникает вопрос: как генерировать выборку? Плотность выборки по возможности должна быть пропорциональна подынтегральному выражению, но генерировать выборку пропорционально произведению трех функций достаточно сложно. Выборку, учитывающую распределение света в карте окружения, предложили в [5], где выборка для КО строится с помощью метода релаксации точек. КО заменяется на несколько сотен источников света, что порождает ступенчатые тени и пропуск бликов от малых источников света. Метод требовал достаточно дорогие предварительные вычисления для построения выборки (десятки секунд).

Множество работ было посвящено тому, как генерировать выборку для подынтегрального выражения из нескольких множителей. Так был предложен метод генерации выборки комбинируя распределение КО и распределение ДФО, что существенно улучшило оценку, если либо КО либо ДФО обладают пиками. Также были предложены методы генерации согласно распределению произведения КО и ДФО, что еще больше улучшило оценку. Однако эти методы давали хорошую сходимость только там, где функция видимости была 1, в тех областях, где КО была затенена, оставался большой шум. Видимость принимается в расчет в [6], где вначале генерировались точки согласно распределению произведения, а потом более большая выборка, используя цепь Маркова, что позволило учесть все три множителя подынтегрального выражения.

Когерентная трассировка лучей

Исследования последних лет в области трассировки лучей [7] и другие,

позволили поднять ее производительность в несколько раз. Сначала использование SIMD (как правило, Intel SSE) инструкций современных процессоров, а потом и значительные алгоритмические усовершенствования позволили достичь значительного ускорения трассировки лучей. Поэтому узким местом

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

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

Предлагаемый подход

Используя многоуровневую когерентную трассировку лучей можно добиться

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

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

Литература

[1] Debevec, P. "Rendering Synthetic Objects Into Real Scenes: Bridging Traditional and Image-Based Graphics With Global Illumination and High Dynamic Range Photography", in Cohen, M., ed.,'SIGGRAPH 98 Conference Proceedings', ACM SIGGRAPH, 1998, pp. 189--198.

[2] Sloan, P., Kautz, J. and Snyder, J. "Precomputed radiance transfer for real-time rendering in dynamic, low-frequency lighting environments," ACM Transaction on Graphics (21:3), 2002, pp. 527--536.

[3] Ng, R., Ramamoorthi, R. and Hanrahan, P. "All-frequency shadows using non-linear wavelet lighting approximation," ACM Transactions on Graphics (22:3), 2003, pp. 376-381.

[4] Xu, K., Jia, Y., Fu, H., Hu, S. and Tai, C. "Spherical Piecewise Constant Basis Functions for All-Frequency Precomputed Radiance Transfer," IEEE Transactions on Visualization and Computer Graphics, 2007.

[5] Agarwal, S., Ramamoorthi, R., Belongie, S. and Jensen, H. "Structured importance sampling of environment maps," ACM Transactions on Graphics (22:3), 2003, pp. 605-612.

[6] Ghosh, A. and Heidrich, W. "Correlated visibility sampling for direct illumination," Visual Computing (22:9), 2006, pp. 693--701.

[7] Reshetov, A., Soupikov, A. and Hurley, J. "Multi-level ray tracing algorithm," ACM Transactions on Graphics (24:3), 2005, pp. 1176--1185.

i Надоели баннеры? Вы всегда можете отключить рекламу.