Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Статьи / Детали использования сферических функций для интерактивного рендеринга.

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

Автор:

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

1. Аннотация
2. Введение
3. Постановка задачи
4. Построение математической модели: ДФОС и ДФРС
    1. Двулучевая функция отражательной способности (ДФОС)
    2. Двулучевая функция рассеянного света (ДФРС)
  4.1 Приближение ДФРС
  4.2 Генерация ДФОС
5. Рендеринг
  5.1. Расчёт диффузной составляющей
  5.2. Расчёт зеркальной составляющей
    1. Генерация ДФРС
    2. Вычисление скалярного произведения
    3. Вычисление самозатенения
6. Результаты
7. Примеры использования
8. Приложения
9. Список литературы

1. Аннотация

Для этого в неинтерактивных приложениях чаще всего используются методы трассировки лучей, фотонных карт, излучательности и т. д. Все эти методы обладают очень большой вычислительной ёмкостью и в связи с этим не пригодны для использования в интерактивной компьютерной графике. К сожалению, стандартные методы интегрирования по источникам окружения большого масштаба [8], включая трассировку лучей методом Монте-Карло [7][21][25], метод излучательности (radiosity) [6], а также многопроходный разделённый рендеринг от нескольких источников света [17][27][36], не подходят для интерактивного рендеринга. Поэтому интерактивные приложения используют небольшой набор точечных источников света для вычисления освещения и сравнительно простые материалы объектов (модели освещённости).

Для создания средствами компьютерной графики физически адекватных, реалистичных изображений необходима детальная информация о светорассеивающих свойствах изображаемых поверхностей. Общепринятой формой представления такой информации является так называемая обобщенная двулучевая функция распределения света (далее ОДФРС), также часто встречающаяся в зарубежной литературе как BRDF (Bidirectional Reflectance Distribution Function). Во многих случаях, как будет показано далее, всегда существует возможность разложить эту функцию на двулучевую функцию рассеянного света (далее ДФРС) и двулучевую функцию отражательной способности (далее ДФОС).

Полное реалистичное освещение в интерактивном режиме насчитывает три проблемы:

  • необходимо моделировать сложные, изменяющиеся в пространстве ДФРС и ДФОС для различных материалов,
  • необходимо интегрирование по полусфере направлений освещения;
  • необходимо учесть затенение.

Большое количество исследований было сфокусировано на разложении ОДФРС (так называемые ламбертовые и видозависимые отражения), для решения проблемы интегрирования по полусфере путём представления входящего освещения в точке поверхности как суммы направленных или точечных источников. Таким образом, интегрирование по полусфере довольно легко упрощается до генерации ОДФРС или выборки табличных, предрасчитаных в нескольких точках, значений, но усложняется для больших источников света. Вторая ветвь исследований идёт в сторону расчета освещённости и предварительной свёртки с различными ядрами [5][14][19][24][34]. Таким образом, решается проблема интегрирования по полусфере, но ценой игнорирования затенения и локальных свойств поверхности, так как свёртка предполагает прямой с не затенённым и не преломлённым потоком света. И последняя ветвь: существуют довольно искусные техники приближений более сложных световых окружений, особенно для самозатенения. Таким образом, интегрирование по полусфере входного светового потока является довольно важной проблемой; эти методики непригодны для динамического освещения.

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

2. Введение

Всё больший и больший интерес к точности моделей освещения сцен проявляется в последнее время в сфере интерактивных приложений (как то: компьютерные игры, пакеты для моделирования и дизайна, различные программы визуализации данных и т.д.). Задача ЭВМ в таких приложениях состоит в том, чтобы построить изображение заданной сцены с заданного положения наблюдателя за интерактивное время (обычно, за менее, чем 30 мс). Сцена представляет собой некоторый набор входных данных: геометрия объектов, их рассеивающие и отражающие свойства, расположение источников и наблюдателя и т.д.

Osveschonnost | Детали использования сферических функций для интерактивного рендеринга.
Рис. 0. Предрасчитанная, освещённость без затенения из [34] (слева) и предрасчитанная передача световой информации с затенением PRT (справа).

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

3. Постановка задачи

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

Ограничения  задачи:

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

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

4. Построение математической модели: ДФОС и ДФРС

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

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

DFOS example | Детали использования сферических функций для интерактивного рендеринга.
Рис. 1. Пример ДФОС.

1. Двулучевая функция отражательной способности (ДФОС)

Двулучевая функция отражательной способности (ДФОС) определяется как отношение количества энергии (света), отраженной в направлении w0 к количеству энергии, попавшей на поверхность с направления wi. Пусть количество энергии отраженной в направлении w0 равно L0, а количество энергии, пришедшей с направления wi равно Ei. Тогда ДФОС равна:

ДФОС | Детали использования сферических функций для интерактивного рендеринга.

где w0 и wi — дифференциальные телесные углы, которые можно однозначно
двумя углами в сферической системе координат (азимутом и зенитом).

2. Двулучевая функция рассеянного света (ДФРС)

DFRS example | Детали использования сферических функций для интерактивного рендеринга.
Рис. 2. Пример ДФРС.

Двулучевая функция рассеянного света (ДФРС) определяется как отношение количества энергии (света), рассеянной в направлении w0 к количеству энергии, попавшей на поверхность со всех направлений видимой полусферы. Пусть количество энергии, рассеянной в направлении w0, равно L0, будет рассматриваться равномерное распределение рассеянного света, таким образом, ДФРС является независимой от направления взгляда (w0):

ДФРС | Детали использования сферических функций для интерактивного рендеринга.

где L – количество энергии, рассеянной одинаково во всех направлениях. Включив в ДФРС функцию видимости, мы внесем в неё учёт самозатенения:

03_BRDF | Детали использования сферических функций для интерактивного рендеринга.

где:
w0 — принимает 0 или 1, в зависимости от того, перекрывается поток света приходящий в данном направлении геометрией объекта или нет. Таким образом, с помощью ДФРС можно представить любую точку объекта без видозависимого освещения (бликов и т.д.).

Подробнее о ДФОС и ДФРС вы можете узнать в [47].

4.1 Приближение ДФРС

ДФРС является ни чем иным как скалярным полем на сфере (так как wi можно однозначно представить в виде точки со значением на единичной сфере). Таким образом, встаёт вопрос о приближении данной функции в каком-либо удобном нам функциональном базисе на сфере. Под такой базис очень хорошо подходит базис присоединённых сферических функций действительного переменного, образующих полный ортонормированный базис функций на сфере:

04_funkcia_na_sfere | Детали использования сферических функций для интерактивного рендеринга.

где: 05_koefficient_normirovki | Детали использования сферических функций для интерактивного рендеринга. — коэффициент нормировки,

Plm(x) — присоединённый многочлен Лежандра, однозначно определяемый следующими тремя рекуррентными соотношениями:

06_sootnosheniya_Lejanra | Детали использования сферических функций для интерактивного рендеринга.

Таким образом, ДФРС представляется в данном базисе в виде:

07_BRDF | Детали использования сферических функций для интерактивного рендеринга.

где коэффициенты  определяются следующим образом:

08_koefficientu_BRDF | Детали использования сферических функций для интерактивного рендеринга.

Равномерное распределение точек на сфере | Детали использования сферических функций для интерактивного рендеринга.
Рис. 3. Равномерное распределение
точек на сфере.

Так как ДФРС задана численно, и вообще говоря, вычисление функции видимости для каждого направления для многих сцен является задачей не лёгкой и довольно ёмкой в плане вычислений, то встаёт вопрос о том, как наиболее точно вычислить коэффициенты , посчитав при этом как можно меньше значений ДФРС. Идеально подходит для этих целей метод Монте-Карло. Он имеет линейную сходимость вне зависимости от размерности интеграла:

09_Monte_Karlo | Детали использования сферических функций для интерактивного рендеринга.

где:
10_tochka_na_sfere | Детали использования сферических функций для интерактивного рендеринга. — точка на единичной сфере.

Множество  определим следующим образом:

11_Ravnomernoe_raspr | Детали использования сферических функций для интерактивного рендеринга.

Таким образом, мы обеспечили равномерное распределение направлений в полном телесном угле.

Для каждого направления заранее рассчитываются значения базисных функций. После чего идёт проекция ДФРС каждой вершины на заранее выбранное количество базисных функций. Было решено выбрать первые 36 базисных функций в силу аппаратных ограничений на количество передаваемых с каждой вершиной коэффициентов.

4.2 Генерация ДФОС

ДФОС – функция, зависящая от двух дифференциальных телесных углов. Её можно представить как отображение пространства точек на сфере в пространство функций на сфере:

Пример приближения ДФОС | Детали использования сферических функций для интерактивного рендеринга.
Рис. 4. Пример приближения.

12_BRDF_na_sfere | Детали использования сферических функций для интерактивного рендеринга.

Для идеальной зеркальной поверхности ДФОС будет являться обратимой изотропной симметричной вокруг направления wi функцией, то есть:

13_BRDF_na_zerkale | Детали использования сферических функций для интерактивного рендеринга.

где: Rp — оператор поворота сферы вокруг центра через нормаль к поверхности на p.

Вообще говоря, для  идеальной зеркальной поверхности ДФОС будет равна 1, если направление wi есть ни что иное, как отражение направления wi от нормали к поверхности, а в остальных случаях – 0. Но при приближении этой функции с помощью 36 базисных функций, ДФОС будет иметь вид подобный изображённому на рис. 4. Таким образом, ДФОС можно представить в следующем виде:

14_Operator_povorota | Детали использования сферических функций для интерактивного рендеринга.

где:
15_W_k | Детали использования сферических функций для интерактивного рендеринга. — направление отражения  от нормали к поверхности,
16_R_w_k | Детали использования сферических функций для интерактивного рендеринга. — оператор поворота на соответствующие направлению 15_W_k | Детали использования сферических функций для интерактивного рендеринга. азимутальный и зенитный углы.
17_sostavnaya_funkction | Детали использования сферических функций для интерактивного рендеринга. разложенная по 36 базисным функциям.

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

18_matrix | Детали использования сферических функций для интерактивного рендеринга.

Элементы подматриц данной матрицы вычисляются как:

19_matrix_elements | Детали использования сферических функций для интерактивного рендеринга.

что соответствует повороту базиса на углы a и b.

Замечание: индексация в подматрицах ведётся с середины подматрицы(т.е. если подматрица, например, 3х3, то индексация будет в интервале [–1; 1].
Азимутальный и зенитный | Детали использования сферических функций для интерактивного рендеринга.
Рис. 5. Азимутальный и зенитный.

При b=0 вычисление подматриц поворота сильно упрощается:

20_nulevaya_betta | Детали использования сферических функций для интерактивного рендеринга.

Таким образом, имеет смысл сделать разложение поворота на четыре оператора:

22_razlojenie_povorota | Детали использования сферических функций для интерактивного рендеринга.

Так как рассматриваемая функция симметрична относительно оси Х, то первый оператор поворота тождественен:

23_perviy_operator_povorota | Детали использования сферических функций для интерактивного рендеринга.

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

Страницы: 1 2 3 Следующая »

12 октября 2009

#BRDF, #global illumination

2001—2017 © GameDev.ru — Разработка игр