Освещение сферических гармоник - что оно делает?


8

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

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

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


если вы думаете, что есть что-то, что вам не нравится с ответом, может быть, я могу уточнить?
concept3d

Ответы:


10

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

Если вы хотите получать свет только от точечных источников, вам не нужен SH. Точечные источники света более точно обрабатываются, просто оценивая BRDF напрямую. Кроме того, если у вас есть фиксированная среда (небо и т. Д.), От которой вы хотите получать свет, вы можете генерировать предварительно свернутые кубические карты в автономном режиме (например, с помощью CubeMapGen ), которые довольно хорошо справляются с приближением свертки карты среды с помощью BRDF. Здесь нет необходимости в SH.

SH действительно пригодится, когда у вас сложная сцена, и вы хотите непрямое освещение, то есть отраженное освещение. В этом случае распределение света варьируется от места к месту. В принципе, каждая отдельная точка в сцене имеет различное освещение в зависимости от своего окружения. На практике мы проводим выборку освещения в отдельных точках, используя некоторый алгоритм глобального освещения. Есть много способов сделать это - вы можете попробовать освещение на каждой вершине поверхностей, например, или на каждом текселе карты освещения. Или создайте объемное представление, используя сетку или тетраэдрическую сетку .

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

Следует отметить, что SH действительно полезен только для рассеянного освещения. Если вы не используете поистине безумное количество коэффициентов SH, это слишком сильно размывает угловое распределение входящего света. Для высококачественного зеркального непрямого освещения необходимо что-то еще, такое как кубические карты с поправкой на параллакс и / или трассировка лучей в пространстве экрана.


> Дело в том, что существует большое количество точек, в которых отбирается освещение, и поэтому нам нужно гибкое, но очень компактное представление освещения вокруг точки, чтобы избежать чрезмерного использования памяти. СХ прекрасно справляется с этой ролью <Это то, что меня смущает. Мне кажется, что вы можете представлять свет вокруг точки (это излучение, не так ли?) Точно так же, как при нормальном представлении интенсивности, и вам также нужно меньше памяти для этого, так как даже всего 2-полосный SH использует 4 коэффициенты на цвет, тогда как интенсивность всего 3.
TravisG

Что ж, давайте рассмотрим конкретный пример: вы случайно не знакомы с алгоритмом Light Propagation Volume, используемым в Cryengine 3? Интересно, почему не практично представлять освещение в LPV так же интенсивно.
TravisG

@TravisG Это не просто значение интенсивности RGB, потому что разное количество света приходит с разных направлений. Идея состоит в том, чтобы представить угловое распределение входящего света, а не только свет от одного определенного направления или среднее значение по всем направлениям. Подумайте, есть ли у вас зеленый свет слева и красный свет справа. Поверхность с нормальным отображением должна отражать зеленый цвет там, где нормали указывают влево, и красный цвет там, где они указывают вправо. Одиночная интенсивность RGB не может представлять эту ситуацию, а 2-х или 3-х полосная база SH может.
Натан Рид

@TravisG Аналогично с LPV, вам нужно следить за направлением распространения света. Он не просто распространяется во всех направлениях (если только он не рассеивается частицами в воздухе или чем-то подобным); оно продолжает идти в том же направлении, в котором оно было излучено. Например, один узел в LPV может содержать красный свет, движущийся вправо, и зеленый свет, идущий влево, одновременно. Таким образом, каждый узел должен отслеживать угловое распределение света, проходящего через него.
Натан Рид

3

Чего я пока не понимаю, так это то, что должно быть сделано?

Короткий ответ, более точные физические расчеты. (по отношению к некоторым характеристикам взаимодействия поверхности света).

Почему бы не оценить все с помощью рассеянного BRDF обычным способом?

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

Проблема, однако , состоит в том , что реальное взаимодействие света и материала настолько сложно, что оно не может быть смоделировано одним BRDF.

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

Но каковы реальные преимущества?

В компьютерной графике есть разные BRDF, которые делятся на две основные категории:

  1. На основании физической теории.
  2. Разработанный, чтобы соответствовать определенному классу типа поверхности и обычно используется в режиме реального времени рендеринга.

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

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

С другой стороны, иногда BRDF измеряются непосредственно с требуемой поверхности (и не представлены математическим уравнением). Это дает нам гораздо более физически точные данные о поверхности, которые в противном случае трудно выполнить аналитически.

Один из методов для подбора этих захваченных данных состоит в том, чтобы выбрать аналитический BRDF и вставить эти данные в него. Сферические гармоники - это просто метод, используемый для представления этих измеренных величин и их встраивания в аналитическую модель BRDF.

Лучший ресурс для теории BRDF можно найти в режиме реального времени рендеринга.

  • 7.5. Теория BRDF.
  • Пересмотр сферических гармоник. 7.7.2 Представления для измеренных BRDF.

Спасибо за ответ, но мне немного не хватает того, что я ищу. Насколько я понимаю, вы можете аппроксимировать любую функцию f (x), используя сферические гармоники, и по какой-то причине люди решают аппроксимировать части модели освещения, используя сферические гармоники (что именно зависит от приложения, но, например, термин диффузный ламбертианский является чем-то что я часто сталкивался). Мне интересно, почему это так, мне кажется, что сферические гармоники - это просто представление с потерями, которое представляет те же данные, но даже не имеет преимущества в памяти.
TravisG

Ну, это зависит от того, с чем вы сравниваете. Если вы сравните это с аналитической моделью, она будет более сложной и дорогой. Но аналитическая модель не принимает во внимание местную среду. Хотя в эти дни я в основном вижу людей, использующих кубические карты. Они достигают аналогичных результатов и имеют лучшую аппаратную поддержку.
drxzcl
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.