Udostępnij za pośrednictwem


Równania PRT (Direct3D 9)

Aby w pełni zrozumieć cieniowanie implementujące prT, warto uzyskać formułę używaną przez moduł cieniujący do obliczania promieni wyjścia.

Aby rozpocząć, poniższe równanie jest ogólnym równaniem do obliczenia promieni wyjścia wynikającego z bezpośredniego oświetlenia na obiekcie rozproszonym z dowolnym odległym oświetleniem.

równanie promienia wyjścia wynikające z bezpośredniego oświetlenia na obiekcie rozproszonym z dowolnym odległym oświetleniem

gdzie:

Parametr Opis
Rp Promienie wyjścia na wierzchołku p. Oceniane na każdym wierzchołku siatki.
d Albedo powierzchni.
pi Stała, używana jako współczynnik normalizacji ochrony energii.
L(s) Środowisko oświetlenia (promienie źródłowe).
Vp₍s₎ Funkcja widoczności binarnej dla punktu p. Jest to 1, jeśli punkt może zobaczyć światło, 0, jeśli nie.
Hnp₍s₎ Cosinus z prawa Lamberta. Równe maksymalne (np· s), 0), gdzie Np jest powierzchnią normalną w punkcie p.
s Zmienna, która integruje się z sferą.

 

Korzystanie z funkcji podstawy sfericznej, takich jak harmoniczne kuliste, następujące równanie przybliża środowisko oświetlenia.

równanie środowiska oświetleniowego

gdzie:

Parametr Opis
L(s) Środowisko oświetlenia (promienie źródłowe).
ja Liczba całkowita, która sumuje liczbę funkcji bazowych.
O Kolejność sfericznych harmonicznych.
li Współczynnik.
Yi(s) Niektóre funkcje podstawy na sferze.

 

Kolekcja tych współczynników, L', zapewnia optymalne przybliżenie funkcji L(s) z funkcjami bazowymi Y. Podstawianie i dystrybucja daje następujące równanie.

równanie promienia wyjścia po podstawianiu l(s) i rozkładaniu

Całka Yi(s)vp₍s₎Hnp₍s₎ jest współczynnik transferu tpi, że symulator prekompiluje dla każdego wierzchołka siatki. Podstawianie tego daje następujące równanie.

równanie promienia wyjścia po podstawianiu współczynnika transferu

Zmiana tej wartości na notację wektorową daje następujące nieskompresowane równanie w celu obliczenia promieniowania wyjścia dla każdego kanału.

równanie promienia wyjścia po zmianie na notację wektorów

gdzie:

Parametr Opis
Rp Promienie wyjścia na wierzchołku p.
d Albedo powierzchni.
L' Wektor li, i jest projekcją promienia źródłowego do funkcji szyfrowania harmonicznego. Jest to wektor order² współczynników harmonicznych spherical.
Papier toaletowy Wektor transferu order² dla wierzchołka p. Symulator dzieli współczynniki transferu przez p.

 

Oba te wektory są wektorem order² współczynników harmonicznych, dlatego zwróć uwagę, że jest to po prostu produkt kropkowy. W zależności od kolejności kropka może być kosztowna, aby można było użyć kompresji. Algorytm o nazwie Clustered Principal Component Analysis (CPCA) efektywnie kompresuje dane. Pozwala to na zastosowanie zbliżenia harmonicznego o wyższej kolejności, co powoduje ostrzejsze cienie.

FUNKCJA CPCA udostępnia następujące równanie, aby przybliżyć wektor transferu.

równanie przybliżonego wektora transferu

gdzie:

Parametr Opis
Papier toaletowy Wektor transferu dla wierzchołka p.
Mk Średnia dla klastra k.
j Liczba całkowita, która sumuje liczbę wektorów PCA.
N Liczba wektorów PCA.
w pj Waga jth PCA dla punktu p.
Bkj Wektor podstawy jth PCA dla klastra k.

 

Klaster to po prostu pewna liczba wierzchołków, które współdzielą ten sam wektor średni. Jak uzyskać średnią klastra, wagi PCA, wektory podstaw PCA i identyfikatory klastra dla wierzchołków zostały omówione poniżej.

Podstawianie tych dwóch równań daje:

równanie promienia wyjścia po podstawieniu wektora transferu

Następnie rozłożenie produktu kropki daje następujące równanie.

równanie promienia wyjścia po rozłożeniu kropki

Ponieważ oba (Mk· L') i (Bkj· L') to stała na wierzchołek, przykład oblicza te wartości przy użyciu procesora CPU i przekazuje je jako stałe do cieniowania wierzchołka; ponieważ wpj zmiany dla każdego wierzchołka, przykład przechowuje te dane dla wierzchołka w buforze wierzchołka.

wstępnie skompilowany transfer promienia