Compartilhar via


Equações prt (Direct3D 9)

Para entender completamente um sombreador que implementa PRT, é útil derivar a fórmula que o sombreador usa para calcular o brilho de saída.

Para começar, a equação a seguir é a equação geral para calcular o brilho de saída resultante da iluminação direta em um objeto difuso com iluminação distante arbitrária.

equação do brilho de saída resultante da iluminação direta em um objeto difuso com iluminação distante arbitrária

onde:

Parâmetro Descrição
Rp O brilho de saída no vértice p. Avaliado em cada vértice na malha.
pd O albedo da superfície.
pi Uma constante, usada como um fator de normalização de conservação de energia.
L(s) O ambiente de iluminação (radiação de origem).
Vp₍s₎ Uma função de visibilidade binária para o ponto p. É 1 se o ponto pode ver a luz, 0 se não.
Hnp₍s₎ O termo cosseno da lei de Lambert. Igual a max((Np> s), 0) em que Np é a superfície normal no ponto p.
s A variável que se integra sobre a esfera.

 

Usando funções de base esféricas, como harmônicos esféricos, a equação a seguir aproxima o ambiente de iluminação.

equação do ambiente de iluminação

onde:

Parâmetro Descrição
L(s) O ambiente de iluminação (radiação de origem).
eu Um inteiro que soma o número de funções base.
O A ordem das harmônicas esféricas.
Leu Um coeficiente.
Yi(s) Alguma função base sobre a esfera.

 

A coleção desses coeficientes, L', fornece a aproximação ideal para a função L(s) com as funções de base Y(s). Substituir e distribuir produz a equação a seguir.

equação do brilho de saída depois de substituir l(s) e distribuir

O integral de Yi(s)Vp₍s₎Hnp₍s₎ é um coeficiente de transferência tpi que o simulador pré-compila para cada vértice na malha. Substituir isso produz a equação a seguir.

equação do brilho de saída depois de substituir o coeficiente de transferência

Alterar isso para notação de vetor produz a seguinte equação não compactada para calcular o brilho de saída para cada canal.

equação do brilho de saída após a alteração para a notação de vetor

onde:

Parâmetro Descrição
Rp O brilho de saída no vértice p.
pd O albedo da superfície.
L' O vetor de lie é a projeção do brilho de origem nas funções de base harmônica esféricas. Este é um vetor order² de coeficientes harmônicos esféricos.
Papel higiênico Um vetor de transferência order² para o vértice p. O simulador divide os coeficientes de transferência por p.

 

Ambos os vetores são um vetor order² de coeficientes harmônicos esféricos, portanto, observe que este é simplesmente um produto ponto. Dependendo da ordem, o ponto pode ser caro para que a compactação possa ser usada. Um algoritmo chamado CPCA (Análise de Componente principal clusterizado) compacta os dados com eficiência. Isso permite o uso de uma aproximação harmônica esférica de ordem superior que resulta em sombras mais nítidas.

O CPCA fornece a equação a seguir para aproximar o vetor de transferência.

equação do vetor de transferência aproximado

onde:

Parâmetro Descrição
Papel higiênico O vetor de transferência para o vértice p.
Mk A média para o cluster k.
j Um inteiro que soma o número de vetores PCA.
N O número de vetores de PCA.
wpj O peso jth PCA para o ponto p.
Bkj O vetor de base jth PCA para cluster k.

 

Um cluster é simplesmente um número de vértices que compartilham o mesmo vetor médio. Como obter a média do cluster, os pesos PCA, os vetores de base PCA e as IDs de cluster para os vértices são discutidos abaixo.

Substituir essas duas equações gera:

equação do brilho de saída depois de substituir o vetor de transferência

Em seguida, a distribuição do produto ponto produz a equação a seguir.

equação do brilho de saída depois de distribuir o produto de ponto

Porque ambos (Mk· L') e (Bkj· L') são constantes por vértice, a amostra calcula esses valores com a CPU e os passa como constantes no sombreador de vértice; porque wpj alterações para cada vértice, o exemplo armazena esses dados por vértice no buffer de vértice.

de transferência de radiação pré-computada