научная статья по теме УПРОЩЕННЫЙ МЕТОД ФОТОННЫХ КАРТ ДЛЯ ВИЗУАЛИЗАЦИИ КАУСТИК В РЕАЛЬНОМ ВРЕМЕНИ Математика

Текст научной статьи на тему «УПРОЩЕННЫЙ МЕТОД ФОТОННЫХ КАРТ ДЛЯ ВИЗУАЛИЗАЦИИ КАУСТИК В РЕАЛЬНОМ ВРЕМЕНИ»

ПРОГРАММИРОВАНИЕ, 2011, No 5, с. 3-12

КОМПЬЮТЕРНАЯ ГРАФИКА -

УДК 681.3.06

УПРОЩЕННЫЙ МЕТОД ФОТОННЫХ КАРТ ДЛЯ ВИЗУАЛИЗАЦИИ КАУСТИК В РЕАЛЬНОМ ВРЕМЕНИ

© 2011 г. Д.К. Боголепов, Д.С. Сопин, В.Е. Турлапов Нижегородский государственный университет им. Лобачевского 603950 г. Нижний Новгород, пр. Гагарина, 23 E-mail: {denisbogol, sopindm, vadim.turlapov}@gmail.com Поступила в редакцию 01.03.2011 г.

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

1. ВВЕДЕНИЕ

Эффекты глобального освещения играют важную роль в задачах синтеза реалистичных изображений. К базовым эффектам можно отнести тени, многократные отражения и преломления. Для их моделирования в большинстве случаев применяется алгоритм трассировки лучей [1]. Расширенные эффекты, связанные с диффузным отражением1 света и каустиками,2 требуют более сложных алгоритмов. К числу наиболее распространенных относится метод фотонных карт, который обеспечивает практическое и вычислительно эффективное решение для задач глобального освещения [2]. Алгоритмы

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

2 Каустика в оптике - геометрическое место

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

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

Одна из первых успешных реализаций метода фотонных карт на графическом процессоре описана в работе [3]. Авторы отказались от использования традиционного kd-дерева для ускорения доступа к фотонной карте. Вместо этого в работе используется регулярная сетка, и предлагаются два способа распределения фотонов по вокселям. Кроме того, авторами был предложен метод для поиска k ближайших фотонов сетки в заданной точке соударения. Данный метод оказался весьма ресурсоемким и занимал около 90% от времени визуализации. Безусловно, используемая на тот момент аппаратура класса NVIDIA GeForce FX 5900 Ultra не могла обеспечить интерактивной визуализации даже для самых простых сцен. Например, сцена с одним прозрачным объектом (стеклянный шар на плоскости) в окне 512 х 512 точек для 65 х 103 фотонов обрабатывалась более одной минуты. Тем не менее, данный

подход характеризуется высокой трудоемкостью и вряд ли обеспечит реальное время для сцен средней сложности даже на современном оборудовании. Хотя производительность уступала существующим реализациям для центрального процессора, работа была крайне интересной и послужила основой для дальнейших улучшений. К их числу относятся работы [4-5], в которых авторы исследовали различные ускоряющие структуры, включая kd-деревья и иерархию ограничивающих объемов (BVH - bounding volume hierarchy). Однако применение современного оборудования не позволило достичь реального времени даже на простых тестовых сценах. Например, в работе [5] на простой сцене (кольцо на плоскости) в окне 512 х 512 точек для 128 х 103 фотонов получена производительность порядка 4-6 к/с на ГПУ NVIDIA GeForce GTX 280.

Для частной задачи визуализации каустик были предложены и другие подходы, не основанные на фундаментальных методах глобального освещения. Например, интерес представляет техника под названием caustic mapping, изложенная в работе [6]. Данный метод разработан для использования совместно с наиболее распространенным в настоящее время способом визуализации сцены с помощью ГПУ - растеризацией. В процессе растеризации примитивы, из которых состоит сцена, проецируются на плоскость экрана и разбиваются на отдельные фрагменты (пиксели), которые сортируются по глубине и выводятся на экран в правильном порядке. При проективном построении сцены авторы предлагают использовать отдельный вершинный буфер в качестве набора фотонов. В вершинном шейдере данные фотоны трассируются через сцену по законам отражения и преломления. Весь алгоритм выполняется в пространстве изображения, поэтому информация о геометрии сцены передается через заранее построенные карты нормалей и глубины. Результатом работы алгоритма является карта каустик, которую можно отфильтровать и проективно наложить на геометрию сцены. Основные ограничения подхода схожи с таковыми в технике теневых карт (shadow maps). При реализации данного подхода могут возникать

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

Целью настоящей работы является реализация упрощенного метода фотонных карт для исполнения на графическом процессоре в реальном масштабе времени. В данной работе показано, каким образом можно дополнить трассировку лучей для корректного моделирования отражающих и прозрачных объектов, которые вызывают каустики - области с резко возрастающей интенсивностью светового поля. Основой программной реализации являются инструменты OpenGL (с шейдерами GLSL - OpenGL Shading Language) [7] и OpenCL [8], которые являются стандартами в области графики и гетерогенных вычислений и обеспечивают поддержку оборудования различных фирм. Благодаря широким возможностям, включающим запись в текстуру по произвольному адресу и работу с массивами данных при помощи указателей, OpenCL является оптимальной платформой для задач сортировки и формирования ускоряющих структур. С другой стороны, максимальная производительность в задаче визуализации достигается с использованием шейдерного языка GLSL, специально спроектированного для нужд компьютерной графики.

2. МОДЕЛИРОВАНИЕ КАУСТИК

2.1. Простейший подход

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

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

Рис. 1. Генерация фотонов для регулярных точек на прямоугольной площадке.

или прямоугольные (испускают фотоны в произвольном направлении полупространства) источники света.

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

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

аберраций4 (необходимо генерировать фотоны отдельно для каждой длины волны).

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

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

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

N II ||

V"^ Р — Pi

1 = ^ray tracing + ^photon x max{0,1 - }.

i=о -

(1)

Здесь p - координаты обрабатываемой точки соударения, pi - координаты i-ого элемента фотонной карты. Параметр - - радиус окрестности сбора фотонов, который подбирается эмпирически для каждой конкретной сцены.

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

Для дальнейшего прочтения статьи необходимо приобрести полный текст. Статьи высылаются в формате PDF на указанную при оплате почту. Время доставки составляет менее 10 минут. Стоимость одной статьи — 150 рублей.

Показать целиком