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 radiamento de saída.

Para começar, a equação a seguir é a equação geral para calcular o radiamento 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

em que:

Parâmetro Descrição
Rp O radiação 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 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 à 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

em que:

Parâmetro Descrição
L(s) O ambiente de iluminação (radiação de origem).
i Um inteiro que soma o número de funções base.
O A ordem dos harmônicos esféricos.
li 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 base Y(s). Substituir e distribuir produz a equação a seguir.

equação do radiamento de saída após substituir l(s) e distribuir

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

equação do radiamento de saída após substituir o coeficiente de transferência

Alterar isso para notação de vetor produz a equação descompactada a seguir para calcular o radiamento de saída para cada canal.

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

em que:

Parâmetro Descrição
Rp O radiação de saída no vértice p.
pd O albedo da superfície.
L' O vetor de li e é a projeção do radiamento de origem nas funções de base harmônica esféricas. Este é um vetor order² de coeficientes harmônicos esféricos.
Tp 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 de ponto. Dependendo do pedido, 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

em que:

Parâmetro Descrição
Tp 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 PCA.
wpj O peso JTH PCA para o ponto p.
Bkj O vetor de base JTH PCA para o 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 radiamento de saída depois de substituir o vetor de transferência

Em seguida, a distribuição do produto de 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, o exemplo calcula esses valores com a CPU e os passa como constantes para o sombreador de vértice; como wpj altera para cada vértice, o exemplo armazena esses dados por vértice no buffer de vértice.

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