Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Статьи / Объемы распространения света для непрямого освещения в режиме реального времени.

Объемы распространения света для непрямого освещения в режиме реального времени.

Автор:

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


Антон Капланян

Университет Карлсруэ

Карстен Дахсбахер

Университет Карлсруэ

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

1. Введение
2. Обзор литературы
  Классические методы
  Предрасчитанный перенос света
  Методы в пространстве изображения
  Методы быстрой излучательности
  Сеточные методы
3. Объемы распространения света
  3.1. Инициализация ОРС
    Непрямое освещение
    Низкочастотное прямое освещение
  3.2. Инжекция
    Нечёткое оттенение
    Инжекция геометрии
  3.3. Схема распространения
    Распространение интенсивности
    Проецирование
    Затенение
    Итеративное распространение
  3.4. Освещение с ОРС
4. Иерархия объемов распространения света
  4.1. Распространение во вложенных сетках
  4.2. Стабильность решения для динамических сцен
5. Качественный анализ предложенной схемы распространения
6. Подробности реализации
7. Результаты и дискуссия
    Множественные непрямые отражения
    Матовые материалы
    Участвующая среда
    Обсуждение
8. Заключение
Список литературы

1. Введение

Сцена Crytek Sponza | Объемы распространения света для непрямого освещения в режиме реального времени.
Рендеринг реального времени (суммарно 16 мс/кадр, NVIDIA GTX285 с разрешением 1280x720) сцены «Crytek Sponza» с использованием предложенного метода непрямого освещения с тремя каскадами объемов распространения света (ОСР) (с размерами 50, 25 и 12.5 метров, размер сцены 37x15x22 м3). Время, требуемое для расчёта непрямого освещения, составляет 3 миллисекунды. Источники света, камера и геометрия сцены динамические.

В большинстве статей, описывающих методы для расчёта глобального освещения (ГО, англ. Global Illumination, GI), утверждается, что это сложная задача для интерактивных приложений — это безусловно так ввиду естественной сложности процесса распространения света. Несмотря на значительный прогресс в последние годы, рендеринг ГО  в режиме реального времени без дополнительных предрасчётов или ограничений является по-прежнему труднодостижимой целью. Поскольку непрямое освещение является важной частью изображения, существует множество методов аппроксимации с достаточно высокой производительностью. Также физически точный расчёт ГО часто является необязательным [Yu et al. 2009]. Недавние исследования широко используют это наблюдение, применяя, к примеру, интерполяцию для функции видимости [Krivanek and Colbert 2008], неполную видимость [Ritschel et al. 2008], или аппроксимации в пространстве изображения [Ritschel et al. 2009b].

В этой статье мы представляем новый метод рендеринга непрямого освещения для полностью динамических сцен без каких-либо предрасчётов. Метод разрабатывался с учётом строгих требований приложений реального времени и рассчитан на временной бюджет в несколько миллисекунд на кадр с использованием современных графических процессоров (ГП, англ. Graphics Processing Unit, GPU) как персональных компьютеров так и игровых консолей.

Если настроить параметры существующих методов под временной бюджет приложений реального времени, качество ухудшается до возникновения явных дефектов изображения, таких как появление ярких пятен при использовании метода быстрой излучательности [Keller 1997], или возникновение дефектов пространственной дискретизации в методах излучательности, например [Dachsbacher et al. 2007]. Также при использовании методов, работающих в пространстве изображения, таких как [Dachsbacher and Stamminger 2005], [Ritschel et al. 2009b], с частичным расчётом освещения, наблюдается шум или полосчатость изображения при ограничении времени расчёта. Помимо этого, такие методы влекут дополнительные ограничения, такие как непрямое освещение только на ограниченных расстояниях и только от объектов в прямой видимости.

Предлагаемый метод не подвержен перечисленным недостаткам и предоставляет устойчивые к ошибкам результаты с обеспечением временно́й стабильности даже при очень маленьком времени расчёта. Это достигается благодаря использованию сеток для аппроксимации распределения света и геометрии в сцене. Угловое распределение света аппроксимируется сферическими функциями низших порядков. Поверхности сцены, являющиеся источниками непрямого освещения, растеризируются каждый кадр с помощью отражательных теневых карт (ОТК, англ. Reflective Shadow Maps, RSM) [Dachsbacher and Stamminger 2005]. Эта информация используется для задания начального распределения света в объемах распространения света (ОРС, англ. Light Propagation Volumes, LPV). Используя такое представление, мы предлагаем параллельную схему распространения света, которая позволяет быстро и корректно приблизить процесс распространения низкочастотного прямого и непрямого освещения, с учётом преграждения геометрией сцены. Предлагаемая схема распространения основана на методе дискретных ординат [Chandrasekhar 1950]. Также анализ предложенной схемы показывает, что для приемлемого непрямого освещения достаточно использовать упрощённую, локальную схему распространения. Предлагаемый метод является частью игрового движка CryENGINE 3 и использовался в выпущенной игре Crysis 2. Также метод поддерживает полностью динамические сцены и большие открытые пространства при помощи иерархии вложенных сеток. Метод ОРС более сконцентрирован на приближении непрямого освещения для приложений реального времени, нежели на физически точном его расчёте. Таким образом, метод наиболее подходит для низкочастотного непрямого освещения от рассеивающих поверхностей. Обсуждение ограничений, вызванных пространственной дискретизацией, использованием низкочастотных сферических функций и предложенной схемой распространения, предоставлено в конце статьи.

2. Обзор литературы

Большое количество исследований было проведено в области глобального освещения. Здесь мы приведем работы над методами ГО только для интерактивного рендеринга. Для более детального обзора неинтерактивных методов читатель может ознакомиться с [Dutre et al. 2006]. Все предыдущие исследования разбиты на пять категорий.

Классические методы

Некоторые последние исследования позволяют добиться интерактивного быстродействия для сложных эффектов освещения [Wang et al. 2009], такие методы всё ещё неприменимы для сложных сцен в приложениях реального времени. С недавнего времени начали появляться новые методы излучательности, предназначенные для эффективной работы на графических ускорителях. Так, Донг и др. [Dong et al. 2007] предложил интерактивный метод расчёта ГО для небольших сцен, где видимость определяется с помощью иерархических связей геометрии сцены. Определение видимости может быть заменено на итеративный процесс распространения анти-излучения(англ. Antiradiance) [Dachsbacher et al. 2007]. Не смотря на то, что интерактивное ГО для сравнительно сложных сцен является возможным, динамичность таких сцен, как правило, ограничена. Баннел [Bunnell 2005] предложил приближать ГО и затенение фонового освещения (англ. Ambient Occlusion, AO) при помощи метода конечных элементов, работающего также и с динамическими сценами.

Предрасчитанный перенос света

Множество методов для ГО в режиме реального времени основаны на предрасчете переноса света (ППС, англ. Precomputed Radiance Transfer, PRT), включая предрасчёт видимости, что ограничивает использование таких методов статичной [Sloan et al. 2002] или полустатичной геометрей [Iwasaki et al. 2007].

Хашан и др. [Hasan et al. 2007] приближают ГО с помощью множества вторичных источников света и предлагают масштабируемый метод для рендеринга высококачественных изображений на графическом процессоре за несколько секунд. ППС часто аппроксимируют с помощью низкочастотных сферических функций (СФ, англ. Spherical Harmonics, SH). Слоан и др. [Sloan et al. 2007] также продемонстрировали применимость ППС для динамических сцен с помощью нового приближения произведения двух СФ.

Методы в пространстве изображения

В последние годы методы, работающие в пространстве изображения с использованием графического процессора, становятся популярными и широкоиспользуемыми. Как и любая другая теневая карта (англ. Shadow Map), отражательная теневая карта [Dachsbacher and Stamminger 2005] хранит информацию об объектах в прямом освещении. Однако помимо расстояния до этих объектов, в ОТК также хранится информация, необходимая для расчёта непрямого освещения от этих объектов. Таким образом, каждый пиксел ОТК может быть интерпретирован, как небольшой вторичный источник света. Рендеринг непрямого освещения, сгенерированного с помощью ОТК, может быть реализован как выборка части пиксельных вторичных источников из ОТК. Затенение фонового освещения в пространстве изображения (англ. Screen-Space Ambient Occlusion, SSAO) [Mittring 2007] является стандартом де-факто в большинстве популярных приложений реального времени и даже входит в состав некоторых драйверов. Ритшел и др. [Ritschel et al. 2009b] дополнили этот метод для получения теней от направленного света и цветного непрямого освещения. Важно отметить, что эти методы вычисляют перенос света на лишь небольшие дистанции (в пространстве изображения) и обычно нуждаются в пост-фильтрации для уменьшения дефектов изображения, возникающих из-за разрежённой выборки. В методе фотонных карт в пространстве изображения запись падающего на поверхность фотона в фотонную карту заменяется на операцию растекания фотона в пространстве экрана с помощью ГП [McGuire and Luebke 2009], что позволяет достичь быстродействия достаточного для интерактивного рендеринга сложных сцен. Микро-рендеринг позволяет ускорить операцию финального сбора (англ. Final Gathering) с помощью аппаратного рендеринга большого количества маленьких изображений на ГП [Ritschel et al. 2009a], что также позволяет достичь интерактивного быстродействия на сравнительно сложных сценах с использованием различных материалов.

Методы быстрой излучательности

Полное распределение света может быть приближено большим количеством виртуальных источников света (ВИС, англ. Virtual Point Lights, VPL) [Keller 1997]. Методы, основанные на таком подходе быстрой излучательности (англ. Instant Radiosity), привлекают все большее количество исследователей. Для генерации ВИС первичного отражения может быть эффективно использован метод ОТК. Вклад таких ВИС может быть накоплен в пространстве изображения с помощью метода растекания (англ. Splatting) [Dachsbacher and Stamminger 2006] или многомасштабного растекания [Nichols and Wyman 2009]. В последнем непрямое освещение рассчитывается в более низком разрешении для гладких участков изображения и более точно для участков с детальной геометрией. Эта идея была дополнена умной кластеризацией пикселей ОТК [Nichols et al. 2009]. Заметим, что все вышеперечисленные методы рассчитывают вторичное освещение без учёта видимости. Ритшел и др. [Ritschel et al. 2008] предложили эффективный метод для быстрой генерации сотен неполных теневых карт (англ. Imperfect Shadow Maps). Это позволяет учесть видимость при расчёте непрямого освещения с помощью ВИС. Однако, для устранения мерцания и предоставления временно́й стабильности требуется большое число ВИС (порядка от сотен до тысяч). Разумеется, это налагает серьёзные ограничения на быстродействие в динамических сценах.

Сеточные методы

Метод дискретных ординат (МДО) [Chandrasekhar 1950] дискретизирует неизвестные значения в уравнении переноса излучения в пространстве и по направлениям. Часто МДО используется для расчёта переноса излучения в участвующей среде (англ. Participating Medium). Пространственное распределение излучения в этом методе хранится в конечном объеме (трёхмерной сетке). Обмен происходит между соседними элементами сетки, тем самым уменьшая вычислительную сложность. Разновидность этих методов, основанная на методе решёточных уравнений Больцмана [Geist et al. 2004], описывает процесс рассеяния фотонов для расчёта переноса света в участвующей среде. Фаттал [Fattal 2009] развил МДО и уменьшил смазывание света (из-за неоднократной интерполяции) и лучевой эффект (из-за дискретного набора направлений). Несмотря на эффективность и (потенциальную) распараллеливаемость этих методов, их быстродействия недостаточно для интерактивного рендеринга.

3. Объемы распространения света

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

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

Широко известно, что у методов конечных объёмов есть два главных источника ошибки. Так называемый «лучевой эффект» возникает в связи с дискретизацией по выбранным направлениям и выглядит как нежелательный луч интенсивности вдоль одного из этих направлений. Вторым источником ошибок является размытие в пространстве из-за многонократной интерполяции в процессе распространения. Очевидно, эти методы, применяющиеся, в основном, в контексте освещения участвующей среды, не являются хорошо изученными для высокочастотного (прямого) освещения. Для этого мы используем подход схожий с модифицированным методом дискретных ординат, предложенным Раманкутти и Кросби [Ramankutty and Crosbie 1997]. Иными словами, мы используем сеточный метод только для низкочастотного освещения, что позволяет достичь хорошего приближения для рендеринга реального времени.

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

Расчёт непрямого освещения с помощью предлагаемого метода состоит из четырёх последовательных шагов.

  • Инициализация объемов распространения света (ОРС), используя поверхности сцены, являющиеся источниками непрямого и низкочастотного прямого освещения (например, неточечные источники света).
  • (Опционально) Растеризация поверхностей сцены с помощью метода отслаивания глубины (англ. Depth Peeling) для вида из камеры и для нескольких отражательных теневых карт. Эта информация используется для создания приближённой вокселизации преграждающей геометрии.
  • Итеративное решение светопереноса с начального распределения после инициализации, и накопление промежуточных результатов (для получения конечного распределения света).
  • Освещение геометрии сцены с помощью полученного решения. Помимо освещения рассеивающих материалов, мы также предоставляем приближение для освещения матовых (англ. glossy) материалов и участвующей среды.

3.1. Инициализация ОРС

Объемы распространения света (ОРС) используются только для расчёта низкочастотного освещения в сцене, то есть преимущественно рассеянного непрямого освещения. На первом этапе поверхности сцены, являющиеся источниками такого освещения, конвертируются в распределения угловой интенсивности, которые в свою очередь инжектируются в соответствующие ячейки ОРС. Прямое освещение и затенение от первичных точечных или направленных источников света рассчитывается с помощью традиционных методов, таких как теневые карты.

Инициализация основана на идее представления низкочастотного освещения при помощи набора вторичных источников света (ВИС), согласно [Keller 1997]. Однако, мы используем значительно бо́льшее количество ВИС, чем в типичных методах быстрой излучательности, так как мы не рассчитываем вклад каждого отдельного ВИС, а лишь используем их для инициализации ОРС.

Непрямое освещение

Сначала мы создаем набор ВИС для непрямого освещения с помощью отражательной теневой карты (ОТК) [Dachsbacher and Stamminger 2005] от каждого первичного источника света. Такая ОТК представляет собой многослойную теневую карту, которая может быть эффективно создана на ГП в один проход растеризации. ОТК позволяет быстро растеризировать поверхности, напрямую освещаемые источником света. Такие поверхности являются источниками вторичного освещения. Каждый тексел (ячейка текстуры) ОТК представляет собой вторичный неточечный источник света со спектральным и угловым распределением интенсивности, [cht]I_{p}(\omega)[/cht] (1/Ср), определяемым ориентацией тексела [cht]{n}_{p}[/cht] и его отражённым световым потоком [cht]\Phi_{p}[/cht] (Вт):

[cht]I_{p}(\omega)=\Phi_{p}\left\langle\mathbf{n}_{p}|\omega\right\rangle_+[/cht],

где [cht]\langle.|.\rangle_+[/cht] означает скалярное произведение, ограниченное только неотрицательными значениями. Для упрощения, мы опускаем зависимость от длины волны в этой формуле. Следующий этап состоит в приближении углового распределения интенсивности каждого ВИС в базисе сферических фунцкий (СФ), и в накоплении таких проекций (коэффициентов при базисных функциях) в соответствующих ячейках ОРС. Нужная ячейка сетки просто определяется по позиции ВИС в пространстве. Однако, если ВИС развёрнут от центра ячейки, мы не добавляем его вклад в эту ячейку, а сдвигаем этот ВИС в соседнюю ячейку по направлению его нормали, для предотвращения нежелательного самоосвещения поверхностей сцены. Смещение ВИС производится перед определением ячейки на расстояние до половины ячейки. После того, как ячейка определена, мы учитываем лишь ориентацию ВИС, таким образом, мы не учитываем точное положение ВИС внутри ячейки сетки.

Мы используем базис СФ для представления углового распределения интенсивности. Используя [cht]n[/cht] весов СФ ([cht]n^2[/cht] базисных функций [cht]y_{l,m}(\omega)[/cht]), можно получить [cht]n^2[/cht] коэффициентов проекции, [cht]c_{l,m}[/cht], проиндексированных как по весу [cht]l[/cht], так и по степени [cht]m[/cht]: [cht]-l \geq m \geq l[/cht]. Коэффициенты СФ легко вычисляются аналитически для полусферического косинусного распределения вокруг заданного направления, в данном случае вокруг направления нормали ВИС [cht]{n}_p[/cht]. Полусферическое косинусное распределение, ориентированное вдоль оси [cht]z[/cht] может быть выражено с помощью зональных функций (англ. Zonal Harmonics) [Ramamoorthi and Hanrahan 2001] с последующим поворотом по направлению [cht]{n}_p[/cht] [Sloan 2008]. Наконец, полученные коэффициенты СФ масштабируются значением светового потока ВИС.

Стоит отметить, что в световой поток ВИС уже входит учёт площади тексела ОТК, из которого этот ВИС образован. Таким образом, полученные коэффициенты СФ представляют полное распределение интенсивности одного ВИС, что позволяет накапливать такие распределения от разных ВИС, суммируя соответствующие коэффициенты СФ в каждой ячейке сетки. На практике мы используем три вектора коэффициентов представления цвета в цветовом пространстве RGB. Однако, для простоты изложения, все объяснения даны на примере одного компонента.

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

Низкочастотное прямое освещение

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

Результатом инициализации ОРС является сетка с начальным распределением интенсивностей, которая затем используется для итеративного решения светопереноса. Для того, чтобы уменьшить количество инжектируемых ВИС, также была предпринята попытка кластеризации ОТК, по аналогии с методом срезов ВИС (англ. Lightcuts) [Walter et al. 2005]. Однако этап инжекции является очень быстрым, и эксперименты с кластеризацией ОТК не дали прироста быстродействия на практике.

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

6 января 2014

#global illumination, #глобальное освещение


Обновление: 8 января 2014

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