Уравнения PRT (Direct3D 9)

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

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

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

где:

Параметр Описание
RP Радианце выхода в вершине p. Вычисляется на каждой вершине сетки.
pd Албедо поверхности.
pi Константа, используемая в качестве коэффициента нормализации энергии.
L (s) Среда освещения (источник радианце).
Вице — президент ₍ s ₎ Двоичная функция видимости для точки p. Значение равно 1, если точка может видеть освещение, 0 в противном случае.
₎ ХНП ₍ s Косинус из закона Ламберта. Равно Max ((NP · s), 0), где NP — это нормальная поверхность в точке p.
s Переменная, которая интегрируется над сферой.

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

уравнение среды освещения

где:

Параметр Описание
L (s) Среда освещения (источник радианце).
i Целое число, которое суммирует за число базисных функций.
O Порядок сферических гармоний.
li Коэффициент.
Yi (s) Некоторой базовой функции над сферой.

Коллекция этих коэффициентов, L, обеспечивает оптимальное приближение для функции L с использованием базисных функций Y (s). Подстановка и распространение дает следующее уравнение.

Формула выхода радианце после подстановки l (s) и распространение

Неотъемлемой частьюi (s)вице-президента ₍ s ₎ ХНП ₍ s ₎ является коэффициент пересылки tPi , который в симуляторе выполняет предварительное вычисление для каждой вершины в сети. При замене это дает следующее уравнение.

уравнение радианце выхода после подстановки коэффициента пересылки

При изменении этого значения на векторную нотацию выводится следующее несжатое уравнение для вычисления выходного радианце для каждого канала.

уравнение радианце выхода после перехода на векторную нотацию

где:

Параметр Описание
RP Радианце выхода в вершине p.
pd Албедо поверхности.
Н Вектор liи является проекцией исходного радианце в сферические функции-основания. Это порядок следования в виде вектора сферического гармонического коэффициента.
Пи Вектор перемещения Order ² для вершины p. Симулятор делит коэффициенты перемещения на p.

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

КПКА предоставляет следующее уравнение для приближения к вектору перемещения.

уравнение приближенного вектора перемещения

где:

Параметр Описание
Пи Вектор перемещения для вершины p.
MK Среднее для Cluster k.
j Целое число, которое суммирует по количеству векторов PCA.
Нет Число векторов PCA.
wPJ Вес ЖС PCA для точки p.
БKJ Вектор ЖС PCA для кластера k.

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

При замене этих двух формул выдается следующее:

уравнение радианцеа выхода после подстановки вектора перемещения

Затем при распространении произведения точки выдается следующее уравнение.

Формула выхода радианце после распространения произведения точки

Так как оба (MK · L ') и (BKJ· L ') — константа на вершину, пример вычисляет эти значения с помощью ЦП и передает их в виде констант в шейдер вершин. так как wPJ изменяется для каждой вершины, в этом примере данные для каждой вершины сохраняются в буфере вершин.

Предварительно вычисленный перенос Радианце