Насколько я понимаю, сферические гармоники иногда используются для аппроксимации определенных аспектов освещения (в зависимости от применения).
Например, кажется, что вы можете аппроксимировать причину рассеянного освещения с помощью направленного источника света на точке поверхности или ее части, вычисляя коэффициенты SH для всех диапазонов, которые вы используете (для любой необходимой точности) в направлении поверхности нормалью и масштабируя ее с тем, что вам нужно масштабировать (например, интенсивность светлого цвета, точка (n, l) и т. д.).
То, что я пока не понимаю, это то, что это должно сделать. Каковы реальные преимущества такого подхода по сравнению с оценкой рассеянного BRDF обычным способом. Вы сохраняете вычисления где-нибудь? Есть ли какая-то дополнительная информация, содержащаяся в представлении SH, которую вы не можете получить из скалярных результатов обычной оценки?
источник
Ответы:
Причиной использования сферических гармоник является аппроксимация распределения входящего света вокруг точки - обычно непрямого света, рассчитанного по некоторому алгоритму глобального освещения. Затем BRDF также аппроксимируется сферическими гармониками, чтобы обеспечить возможность эффективного расчета исходящего света, видимого зрителем, путем получения точечного произведения коэффициентов SH входящего света с коэффициентами SH BRDF. Это приближает свертку входящего света с BRDF, как видно из уравнения рендеринга.
Если вы хотите получать свет только от точечных источников, вам не нужен SH. Точечные источники света более точно обрабатываются, просто оценивая BRDF напрямую. Кроме того, если у вас есть фиксированная среда (небо и т. Д.), От которой вы хотите получать свет, вы можете генерировать предварительно свернутые кубические карты в автономном режиме (например, с помощью CubeMapGen ), которые довольно хорошо справляются с приближением свертки карты среды с помощью BRDF. Здесь нет необходимости в SH.
SH действительно пригодится, когда у вас сложная сцена, и вы хотите непрямое освещение, то есть отраженное освещение. В этом случае распределение света варьируется от места к месту. В принципе, каждая отдельная точка в сцене имеет различное освещение в зависимости от своего окружения. На практике мы проводим выборку освещения в отдельных точках, используя некоторый алгоритм глобального освещения. Есть много способов сделать это - вы можете попробовать освещение на каждой вершине поверхностей, например, или на каждом текселе карты освещения. Или создайте объемное представление, используя сетку или тетраэдрическую сетку .
Дело в том, что существует большое количество точек, в которых отбирается освещение, и поэтому нам нужно гибкое, но очень компактное представление освещения вокруг точки, чтобы избежать чрезмерного использования памяти. SH прекрасно справляется с этой ролью. Он также обладает удобным свойством, что он хорошо работает с интерполяцией, то есть коэффициенты SH могут интерполироваться из одной точки выборки в другую, и освещение между ними будет вести себя разумно. А поскольку он фиксирует общее угловое распределение входящего света, а не только свет в одном направлении, вы можете использовать его с нормально отображенной поверхностью и получить довольно хорошие результаты.
Следует отметить, что SH действительно полезен только для рассеянного освещения. Если вы не используете поистине безумное количество коэффициентов SH, это слишком сильно размывает угловое распределение входящего света. Для высококачественного зеркального непрямого освещения необходимо что-то еще, такое как кубические карты с поправкой на параллакс и / или трассировка лучей в пространстве экрана.
источник
Короткий ответ, более точные физические расчеты. (по отношению к некоторым характеристикам взаимодействия поверхности света).
К сожалению, проблема заключается в определении нормального пути . «Нормальная» модель отражения фонга была принята сообществом рендеринга в реальном времени с самого начала и была стандартом де-факто из-за своей простоты, которая делает ее подходящей для использования рендеринга в реальном времени.
Проблема, однако , состоит в том , что реальное взаимодействие света и материала настолько сложно, что оно не может быть смоделировано одним BRDF.
BRDF - это абстракция того, как должно происходить фактическое взаимодействие света. Фонг - это всего лишь один из множества других, который обладает преимуществом простоты.
В компьютерной графике есть разные BRDF, которые делятся на две основные категории:
Говоря о второй категории, каждый BRDF пытается достичь определенных характеристик при взаимодействии легкой поверхности. Простейшим из возможных BRDF является Lambertian, который пытается моделировать подповерхностное рассеяние и часто используется в компьютерной графике. Значение постоянной отражательной способности Lambertian BRDF обычно называют диффузным цветом.
В компьютерной графике в реальном времени обычно BRDF выбираются вручную, а их параметры устанавливаются для достижения желаемого вида (например, использование Phong с определенными значениями для моделирования поверхности из пластика или хрома).
С другой стороны, иногда BRDF измеряются непосредственно с требуемой поверхности (и не представлены математическим уравнением). Это дает нам гораздо более физически точные данные о поверхности, которые в противном случае трудно выполнить аналитически.
Один из методов для подбора этих захваченных данных состоит в том, чтобы выбрать аналитический BRDF и вставить эти данные в него. Сферические гармоники - это просто метод, используемый для представления этих измеренных величин и их встраивания в аналитическую модель BRDF.
Лучший ресурс для теории BRDF можно найти в режиме реального времени рендеринга.
источник