Научная статья на тему 'Методы оптимизации расчёта освещения для интерактивных приложений'

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

CC BY
347
57
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
обобщённая двулучевая функция распределения света / модель кука-торренса / bidirectional reflectance distribution function / cook-torrance equation

Аннотация научной статьи по математике, автор научной работы — Парубец Валерий Валерьевич, Огородников Александр Сергеевич, Берестнева Ольга Григорьевна

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

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

Похожие темы научных работ по математике , автор научной работы — Парубец Валерий Валерьевич, Огородников Александр Сергеевич, Берестнева Ольга Григорьевна

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

The technique of computing lighting based on series expansion of ambient and reflected light functions by associated spherical functions has been proposed the possibilities of its optimization and elimination of limitations, conditioned by static geometry and light source type have been proposed as well.

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

СПИСОК ЛИТЕРАТУРЫ

1. Franke K., Müller K., Nickolay B., Schäfer R. Pattern Recognition, vol. 4174 of Lecture Notes in Computer Science. - Berlin: Springer, 2006. - Р. 718-728.

2. Wahl E., Hillenbrand U., Hirzinger G. Surflet-pair-relation histograms: a statistical 3D-shape representation for rapid classiflcation // Proc. 4th Intern. Conf. on 3-D Digital Imaging and Modeling. -Gent, Belgium. - 2003. - Р. 474-481.

3. Ласло М. Вычислительная геометрия и компьютерная графика на С++. - М.: БИНОМ, 1997. - 304 с.

4. Роджерс Д., Адамс Дж. Математические основы машинной графики: Пер. с англ. - М.: Мир, 2001. - 604 с.

5. Романюк А., Сторчак А. Алгоритмы триангуляции // Компьютеры + программы. - 2001. - № 1. - С. 40-42.

Поступила 16.09.2010 г.

УДК 519.688

МЕТОДЫ ОПТИМИЗАЦИИ РАСЧЁТА ОСВЕЩЕНИЯ ДЛЯ ИНТЕРАКТИВНЫХ ПРИЛОЖЕНИЙ

В.В. Парубец, А.С. Огородников, О.Г. Берестнева

Томский политехнический университет E-mail: ancora_vivo@sibmail.com

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

Ключевые слова:

Обобщённая двулучевая функция распределения света, модель Кука-Торренса. Key words:

Bidirectional reflectance distribution function, Cook-Torrance equation.

Введение

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

Основной составляющей «реалистичности» в современных компьютерных играх является освещение. Из-за возможной сложности сцены, различного количества источников света, их типа, а также различных типов материалов объектов сцены задача расчёта освещения, несмотря на существующие математические модели и массу методов оптимиза-

ции, остаётся крайне нетривиальной и требующей больших вычислительных мощностей.

Математическая модель

В классическом виде расчёт освещения представлен следующей моделью [1]:

Ь(х, ет0) = 4(х,®о) + (ЩЖх',Щх,хУЩ,

Б

где L (х, щ) - интенсивность отражённого потока света из точки x поверхности в направлении щ0; Le(x,щ) - интенсивность потока света, излучаемого самой поверхностью; ^ (х, со0) - двулучевая функция распределения света поверхности в точке x, переводящая свет щ в отражённый свет щ0; L(x, щ) - интенсивность потока света, исходящего от других объектов в направлении щ; G(x,x) - геометрическое отношение между точками x и x'.

Для ламбертовой поверхности вид упрощается:

Ь( х) = |шах((« • щ), 0) V (х, щ) ,

Б

где Г(х,х) - функция видимости: принимает значение 0 или 1 в зависимости от того, освещён объект или нет; шах((щ.<щ),0) - количество рассеянного света, согласно закону Ламберта.

Описание методов реализации

Существует огромное количество реализаций данной модели с различными приближениями и ограничениями. Основные трудности в разработке собственной реализации модели освещения касаются в основном функции распределения све-

та (ОДФРС - обобщённая двулучевая функция распределения света, наиболее частая аббревиатура в зарубежной литературе BRDF - bidirectional reflectance distribution function), т. к. при применении API DirectX или OpenGL реализация остальных компонентов модели не представляется сложной.

На примере работ нескольких авторов, в частности Х. Чена [1] и А. Каплаяна [1, 2] можно выделить следующий метод построения ОДФРС. Для каждого класса материалов, присутствующих в сцене рассчитываются две функции: двулучевая отражённого света (ДФОС) и двулучевая рассеянного света (ДФРС), а материал в свою очередь представляется в виде комбинации идеального диффузного и идеального зеркального компонентов.

Двулучевая функция отражённого света

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

ДФОС(щ,,щ) =

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

Приближения ДФОС

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

ДФОС: f.

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

ДФОС(щ,щ) = ДФОС( Лщ, Лщ),

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

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

ДФОС можно представить в следующем виде: ДФОС(щ,щ) = (Лш/)(щ),

где щ - направление отражения от нормали к поверхности; Rmi - оператор поворота на соответствующие направлению щ азимутальный и зенит-

[1, ф — в — 0

[0, othervise

разложенная по 36 базисным функциям.

ный углы; f - функция вида f (в,ф) -

Рисунок. Пример приближения ДФОС

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

R.i. —

Г1 0 0 0 0 0 0 0 0

0 x x x 0 0 0 0 0

0 x x x 0 0 0 0 0

0 x x x 0 0 0 0 0

0 0 0 0 x x x x x

0 0 0 0 x x x x x

0 0 0 0 x x x x x

0 0 0 0 x x x x x

,0 0 0 0 x x x x x

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

Rf(a,Р)—

2к к

— J Y в + а,ф + Р)У/ (в,ф) sin(0) с1вс1ф,

0 0

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

Замечание: индексация в подматрицах ведётся с середины подматрицы (т. е. если подматрица, например, 3x3, то индексация будет в интервале [-1; 1]).

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

Ri (а) —

cos(j-а), sin(|j|- a), 0,

J — i J — ~i.

IJ * i

Тогда оператор поворота факторизуется: Я,(а,р) = Ях Я? (р)Ях ^j Я (а).

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

Я,(а, Р) = Я?(Р)Я? 1 Я? (а).

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

Двулучевая функция распределения света

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

ДФРС(Щ)=,

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

ДФРС(щ) = -^У,,

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

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

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

кт

у7 (в,Ф) =

m > 0

cos( тф) P (cos(0)), sflKm sin(-тф)Pчт (cos(0)), m < 0, 0"0(cos(0)), m = 0

KO P

где Km1 =

(21 +1)(1- m)!

- коэффициент норми-

4л (I + \т |)!

ровки; Рт(х) - присоединённый многочлен Лежандра.

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

m

■■ Z Z cmYm в,

где коэффициенты определяются как

ст = ¡/х да с^.

Так как ДФРС задана численно, и вычисление функции видимости для каждого направления для

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

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

X /х (^)Г (*) Г ст ~——¡¡—л—+о

i

НИ UN

где s - точка на единичной сфере.

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

И = {Щ = (2arccos^^^-x ),2яу.) | x, y е Я(0Д)}.

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

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

Данный метод хорошо себя зарекомендовал в компьютерных играх [6] и при создании компьютерных эффектов в кинематографе [7].

Визуализация результата

Яркость каждой точки объекта вычисляется как: L = kLD + (I - k)LS,

где k - коэффициент диффузного отражения (k<1); l - коэффициент полного отражения. Положительные стороны метода:

• Расчитан на довольно широкий спектр материалов, за исключением тех, анизотропией которых можно пренебречь (шёлк, некоторые виды кристаллов, жидкости).

• Идеально подходит для расчёта глобального освещения или освещения от неточечных источников.

• Вследствие задания базиса функций освещённости на сфере исключены ошибки, связанные с поворотом источников света.

• Возможность полностью перевести расчёт освещения на процессор видеокарты. Недостатки:

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

• Метод применим только для статичной геометрии.

• Возникновение неточностей в местах с малой плотностью геометрии и около объектов, отбрасывающих тени.

Способы устранения недостатков

Согласно списку приведённых проблем рассматриваемого метода, определим возможные методы их решения.

Упрощение предварительного расчёта коэффициентов разложения ДФОС и ДФРС для вершин сцены

Предварительный расчёт коэффициентов разложения ДФОС и ДФРС - распараллеливаемая задача; соответственно для её решения может быть применено множество методов. Наиболее удачным, с точки зрения эффективности и стоимости, будет переложение всех вычислений на мощности графического процессора. Для сравнения можно привести показатели пиковой производительности процессора Intel Core И 975 - 41 ГФлопс и процессора видеокарты AMD Radeon HD4730 - свыше 400 ГФлопс [8]. Отметим, что данные продукты находятся в разных ценовых категориях, а разрыв в производительности центральных и видеопроцессоров со временем будет только нарастать. Необходимо заметить, что поддержка распределённых вычислений задач, не связанных с обработкой графики, внесена производителями, такими, как AMD и nVidia, уже не в одно поколение видеоадаптеров.

С точки зрения простоты программной реализации стоит учесть, что для написания программ под nVidia CUDA или AMD Stream используется язык C, а компиляторы, производящие бинарный код для видеокарт, постоянно обновляются, включая поддержку объектно-ориентированного языка C++.

Применение модели Кука-Торренса для расчёта освещённости динамических объектов сцены

При наличии в сцене динамических объектов, материалы которых так же можно рассмотреть, как комбинацию идеально зеркального и идеально диффузного, для расчёта освещения можно применить модель Кука-Торренса [9].

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

где N - нормаль в точке; L - положение источника света.

Количество отраженного света зависит от коэффициента Френеля F, геометрической составляющей, учитывающей самозатенение G, компонента, учитывающего шероховатость поверхности D.

Общая формула для вычисления отраженного света такова:

к = _ FGD_ .

(V, N)(L, N)

Рассмотрим вычисление геометрической составляющей:

(

где V - вектор взгляда; H - нормализованная сумма векторов L и V Все векторы должны быть нормированы.

Компонент, учитывающий шероховатость поверхности - это распределение микрограней поверхности для более точного учета отраженного от них света. Обычно, для вычисления этого компонента используют распределение Бек-мана [9]:

D = -

1

(H ,N )2-1 m2 (H ,N )2

4ш2(И, N )4

где параметр m (от 0 до 1) определяет шероховатость поверхности. Чем он больше, тем поверхность шероховатее, следовательно, отражает свет даже под широкими углами.

В данном случае для вычисления коэффициента Френеля целесообразнее всего применить аппроксимацию Шпика [5]:

^ = ^ + (1 - (V, лЬ)5(1 -

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

^ = . 1 + (V, N)

Данная модель позволяет отказаться от предварительного расчёта, а все вычисления по расчёту освещённости перевести на процессор видеокарты.

Устранение неточностей

из-за упрощённой геометрии сцены

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

1. Равномерное уплотнение геометрии. Достигается за счёт выполнения вертексного шей-дера, равномерно разбивающего поверхность сцены на мелкие сегменты; освещённость между ними аппроксимируется. Максимально прост в реализации, однако нецелесообразно увеличивает количество вершин в сцене, что может очень сильно увеличить время расчёта кадра.

2. Адаптивное уплотнение геометрии. Как и в пункте 1, производится разбиение поверхности сцены на мелкие сегменты, но только в тех местах, где необходимо произвести затенение. Метод реализуется с помощью функции расчёта ошибки треугольника сцены [3]:

G = min

2(H, N)(V, N) 2(H, N)(L, N)

(V, H)

(V, H)

\\t., -1„ + k, -1, + k, -1„

1 + p arccos((и n ))

где tv¡ - векторы коэффициентов разложения ДФРС для г-й вершины треугольника; SWJ -площадь треугольника.

3. Применение техники сглаженных ShadowMap [10-12] для затенения объектов. Данный метод позволяет рассчитывать затенение объектов и сохранять эти данные в специальную текстуру, которая затем накладывается на всю сцену. Сравнительным недостатком метода является вычислительная сложность при сглаживании карты теней, однако все современные видеокарты позволяют выполнять данные расчёты в режиме реального времени для сильно загруженных сцен.

Выводы

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

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

СПИСОК ЛИТЕРАТУРЫ

1. Каплаян А.А. Технология предрасчёта освещения модели для получения мягких теней от динамических неточечных источников света // Gamedev.ru. 2005. URL: http://kri-conf.ru/2005/rec/KRI_2005_Programming_03apr_gal12_01_An-ton_Kaplanyan_Akella.ppt (дата обращения: 25.03.2010).

2. Chen H., Liu X., Advances in Real-Time Rendering in 3D Graphics and Game Course // ACM.com. 2009. URL: http://por-tal.acm.org/ft_gateway.cfm? id=1404437&type=pdf (дата обращения: 25.03.2010).

3. Каплаян А.А. Детали использования сферических функций для интерактивного рендеринга // Gamedev.ru. 2009. URL: http://www.gamedev.ru/code/articles/Spherical_functions (дата обращения: 25.03.2010).

4. Шляйх В.П. Квантовая оптика в фазовом пространстве / Пер. с англ. под ред. В.П. Яковлева. - М.: Физматлит, 2005. -С. 740-742.

5. Аркфен Г. Математические методы в физике / Пер. с англ. -М.: Атомиздат, 1970. - С. 413-420.

6. Oat C. Irradiance Volumes for Real-Time Rendering // ShaderX5: Advanced Rendering Techniques. - Charles River Media, 2006. -P. 385-392.

7. Мороз Д.С. «Аватар» - как создавался фильм // 3dnews.ru. 2010. URL: http://www.3dnews.ru/editorial/iavatari_sozdanie_fil-ma (дата обращения: 25.03.2010).

8. Башкирев А.С. Использование технологии ATI Stream // Ga-medev.ru. 2010. URL: http://www.gamedev.ru/code/artic-les/use_stream (дата обращения: 25.03.2010).

9. Резник С.В. Быстрая реализация модели освещения Кука-Торренса с использованием GLSL // Gamedev.ru. 2009. URL: http://www.gamedev.ru/code/articles/Cook-Torrance (дата обращения: 25.03.2010).

10. Lokovic T., Veach E. Deep Shadow Maps // SIGGRAPH'2000: In Proc. of SIGGRAPH. - New Orleans, 2000. - V. 1. - P. 385-392.

11. Foley J.D., Feiner S.K., Hughes J.F. Computer Graphics: Principles and Practice. - Addison-Wesley, 1990. - 1170 p.

12. Max N. Horizon Mapping: Shadows for Bump-Mapped Surfaces // The Visual Computer. - 1998. - № 7. - P. 109-117.

Поступила 09.04.2010г.

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