rendering w czasie rzeczywistym - strona główna...
TRANSCRIPT
Plan wykładu
Oświetlenie w grafice czasu rzeczywistego
Modele koloru
Modele źródeł światła
Światła punktowe, kierunkowe i powierzchniowe
Model nieba, tzw. skybox
Modele odbicia światła
Odbicie matowe – Lambertian, Oren-Nayar
Odbicie połyskliwe – Phong, Cook-Torrance
Odbicie anizotropowe – Ashikhmin-Shirley
Plan wykładu – c.d.
Obiekty przeświecające (ang. translucent)
Rozpraszanie podpowierzchniowe (ang. subsurface
scattering, SSS)
Efekty falowe – dyfrakcja, interferencja
Mapowanie środowiskowe
Odbicie
Załamanie
Dyspersja
Literatura
B. T. Phong, Illumination for Computer Generated
Pictures, Communications of the ACM 1975
R. Cook, K. Torrance, A reflectance model for
computer graphics, SIGGRAPH 1981
M. Oren, S.K. Nayar, Generalization of Lambert's
Reflectance Model, SIGGRAPH 1994
M. Ashikhmin, P. Shirley, An Anisotropic Phong BRDF
Model, Journal of Graphics Tools 2000
Literatura – c.d.
S. O’Neil, Accurate Atmospheric Scattering, rozdział
16, GPU Gems 2, Addison Wesley 2005
S. Green, Real-Time Approximations to Subsurface
Scattering, GPU Gems, Addison Wesley 2004
H. W. Jensen i inni, A Practical Model for Subsurface
Light Transport, SIGGRAPH 2001
J. Stam, Diffraction Shaders, SIGGRAPH 1999
Oświetlenie w grafice czasu
rzeczywistego
Oświetlenie znane z rzeczywistości jest zbyt złożone
aby dokładnie je odwzorować w aplikacjach
komputerowych
Konieczne są pewne modele i, czasem daleko idące,
uproszczenia
Zwykle komputerowa symulacja oświetlenia składa
się z następujących elementów:
Algorytmu liczenia oświetlenia
Modeli źródeł światła
Modeli odbicia
Oświetlenie w grafice czasu
rzeczywistego – c.d.
Oświetlenie lokalne vs. oświetlenie globalne
Rozpatrywane tylko źródło światła i oświetlany obiekt,
obliczane jest jedno odbicie światła
Rozpatrywana jest cała scena jednocześnie –
uwzględnienie dowolnie wielu odbić
Oświetlenie w grafice czasu
rzeczywistego – c.d.
W grafice czasu rzeczywistego na ogół stosuje się
oświetlenie lokalne
Oprócz tego często spotyka się pewne elementy
oświetlenia globalnego, np.
Cienie – wymagają rozpatrzenia dwóch obiektów
oprócz źródła światła
Mapowanie środowiskowe – odbicia otoczenia w
obiektach połyskliwych, załamanie światła w szkle,
wodzie, itp.
Modele koloru
Wszystkie kolory widziane przez ludzi można
odtworzyć przy pomocy mieszania trzech barw w
odpowiednich proporcjach
Stąd popularność modelu RGB (Red-Green-Blue)
Model ten bardzo dobrze nadaje się do
przechowywania obrazów
Niestety model ten powoduje różnorakie błędy w
symulacjach oświetlenia
Model ten nie ma żadnego uzasadnienia na gruncie
fizyki
Modele koloru – c.d.
W grafice czasu rzeczywistego praktycznie zawsze
stosuje się model RGB, ignorując potencjalne błędy
Światło białe Światło kolorowe
RGB RGB
Pełne widmo Pełne widmo
Modele źródeł światła
Uproszczenie spotykanych na co dzień zjawisk na
potrzeby grafiki komputerowej
Niewielkie uproszczenia dla grafiki off-line, na ogół
wyłącznie założenie prawdziwości optyki
geometrycznej, teoria Newtona z XVIII wieku
Często znaczące dla grafiki czasu rzeczywistego, np.
ignorowanie rozmiaru źródła światła albo rozbieżności
kierunku jego świecenia
Zanik światła z odległością
Fizyka mówi: I = C/r2, gdzie I to jasność, r to
odległość od światła, a C to dowolna stała
W grafice stosuje się pewne uproszczenia, przy
których powyższy wzór nie zapewnia
oczekiwanego rezultatu
Punktowe źródła światła – potencjalnie jasność
Obliczanie tylko jednego odbicia – często zbyt szybki
zanik światła
Powszechnie stosowany wzór: I = 1/(C0 + C1r + C2r2),
w którym C0, C1, i C2 oznaczają dowolne stałe
Światła punktowe
Zajmują punkt (matematyczny) w przestrzeni
Samo oświetlenie na ogół wygląda nieźle
Niestety bez stosowania specjalnych sztuczek i chwytów
cienie nie są dobrej jakości
Światła kierunkowe
Założenie: duża odleglość źrodła światła względem
rozmiaru oświetlanej sceny
Uproszczenie – równoległa wiązka promieni, bez
zaniku (zmiana odległości jest pomijalnie mała)
Często Słońce jest modelowane jako światło
kierunkowe, ale nie jest to idealny model
Przesuniecie obiektu na Ziemi nie ma znaczenia w
porównaniu z odległością Ziemia-Słońce
Jednak Słońce zajmuje pewien kąt na niebie –
promienie w rzeczywistości nie są rownoległe
Światła powierzchniowe
Światła te posiadają
ściśle określony kształt
Oświetlenie pochodzi z
wielu różnych kierunków
Na wygląd sceny o wiele
większy wpływ ma
rozmiar źródła światła,
niż jego konkretny kształt
Model nieba
Zwykle tekstura sześcienna (stąd nazwa – SkyBox)
Może być też stosowane mapowanie sferyczne
Model nieba – c.d.
Obraz nieba – albo zdjęcia albo symulacja
rozpraszania światła w atmosferze
W tym drugim przypadku trzeba dodatkowo
modelować zjawiska atmosferyczne, np. chmury
Można też modelować niebo nocne, a także wykonać
dobrze wyglądające wschody i zachody słońca
Często stosuje się światło podstawowe i dopeł-
niające – pozwala podkreślić detale w cieniach
Model nieba – c.d.
Oprócz pełnienia roli tła, niebo może oświetlać
scenę, będąc światłem powierzchniowym
Model nieba – c.d.
Promienie słoneczne widziane w nieidealnie
przeźroczystym powietrzu, tzw. godrays
Modele odbicia
Opisują jasność światła
odbitego, przyjmując jako
dane wejściowe
Kierunek padania światła (L)
Kierunek odbicia (V)
Normalną (N)
Opcjonalnie styczne (T i B)
Wartości wyliczane
R – wektor idealnego odbicia
i, i, o, o – kąty przy L i V
Modele 3D – przypomnienie
Modele do renderingu na karcie graficznej są
zbudowane z wierzchołków i trójkątów
W wierzchołkach zapisane są m.in. normalne i,
opcjonalnie, styczne
Są to dane obliczane dla powierzchni przybliżanej
siatką trójkątów, nie ma czegoś takiego jak normalna
dla punktu
Bardzo częsty błąd, głównie w opracowaniach
dotyczących DirectX: (T, B, N) oznacza Tangent,
BiTangent, Normal, a nie Tangent, BiNormal, Normal
Obliczanie oświetlenia
Na współczesnych kartach graficznych można je
obliczać w wierzchołkach, fragmentach albo
rozdzielić operacje pomiędzy nie
Dla typowych scen jest znacznie mniej wierzchołków niż
fragmentów
Kompromis pomiędzy wydajnością a jakością
Wielkości zmieniające się liniowo pomiędzy
wierzchołkami w przestrzeni obiektu albo przestrzeni
ekranu można ‘bezkarnie’ obliczać w programie
wierzchołków
Obliczanie oświetlenia – c.d.
Porównanie jakości oświetlenia obliczanego w
wierzchołkach i niezależnie dla każdego fragmentu
BRDF
Ang. Bidirectional Reflection Distribution Function,
Dwukierunkowa Funkcja Rozkładu Odbicia
Modele używane zwyczajowo w renderingu off-line
Często zapewnia o wiele lepsze rezultaty niż w
grafice czasu rzeczywistego
Obecnie programowalne karty graficzne o dużej
mocy obliczeniowej pozwalają na stosowanie
modeli tej klasy w grach komputerowych
Odbicie matowe
Postrzegana jasność powierzchni nie zależy od kąta
obserwacji
Zależy tylko od kąta oświetlenia, I = C*cos(N•L)
Model Orena-Nayara
Też odbicie matowe, jednak model bardziej
zaawansowany i zapewniający rezultaty bliższe
rzeczywistości
I = C/(A + B*max(0, cos())*sin*tan)
A = 1 – 2/(22 – 0.66)
B = 0.452/(2 + 0.09)
= max(i, o)
= min(i, o)
Aproksymacja modelu matematycznego, C i są
parametrami
Model Phonga
Odbicie połyskliwe, w oryginale: obicie matowe w
kolorze obiektu + połysk w kolorze światła
I = C1*cos(N•L) + C2*cos(R•L)
Dobrze oddaje wygląd obiektów plastikowych
Model Phonga – c.d.
Wektor połówkowy, H = normalize(L + V)
Uwaga na dzielenie przez zero!
Nie ma obszarów idealnie czarnych
I = C*cosn(H•N)
Balans jasności
Oryginalny model odbija coraz mniej światła wraz ze
wzrostem połyskliwości
I = C*(n + 2)/(2)*cosn(H•N)
Poprawia jakość grafiki przy zastosowaniu HDR
Model Cook’a-Torrance’a
Powierzchnia budowana z bardzo wielu
mikroskopijnych ścianek
Każda ścianka odbija światło tak jak idealnie
wypolerowane lustro
Parametrami są siła odbicia lustra i rozkład
statystyczny kątów odchylenia mikrościanek
Efekt zbliżony do poprawionego modelu Phonga
Można symulować wygląd powierzchni zarówno
plastikowych, lakierowanych, jak i metalicznych
Odbicie anizotropowe
Zależność jasności od kąta padania i odbicia
względem stycznych, a nie tylko normalnej
Odbicie anizotropowe – c.d.
Model Ashikhmina-Shirleya
Oparty na mikroskopijnych zwierciadłach
Analogiczny do modelu Cooka-Torrancea, z rozkładem
statystycznym opisaną wzorem:
Funkcje sin i cos można wyeliminować korzystając z
wzorów trygonometrii
22 sincos)1)(1( yx ee
hyx eeD
N
Obiekty przeświecające
Obiekty te ‘przepuszczają’ światło na druga stronę
Można zastosować dowolny model odbicia, nieco
go modyfikując
Gdy sgn(NV) sgn(NL) oznacza to, że obiekt jest
widziany z innej strony, niż jest oświetlany
Odbicie światła opisane przez średnią ważoną odbicia
‘zwykłego’ i przepuszczania światła na przeciwną
stronę
Model działa poprawnie tylko dla obiektów
bardzo cienkich
Rozproszenie podpowierzchniowe
Podobnie jak obiekty przeświecające, ale dla
obiektów dowolnych, niekoniecznie cienkich
Rozproszenie podpowierzchniowe
Poprzedni obrazek nie był
liczony w czasie rzeczywistym
Można jednak podobny efekt
osiągnąć na karcie stosując
pewne chwyty
Poszerzenie zakresu odbicia
matowego
Mapy głębi
Rozproszenie podpowierzchniowe
Model ten bardzo
dobrze nadaje się do
postaci ludzkich
Konieczne aproksymacje
dla renderingu czasu
rzeczywistego
Efekty falowe
Promienie światła uginają
się na regularnie rozmiesz-
czonych nierównościach
Promienie nakładają się na
siebie – suma amplitudy
fal
Model wymaga operacji
na pełnym widmie a nie
RGB, konieczne konwersje
Mapowanie środowiskowe
Mapa sześcienna zawierająca otoczenie obiektu
Zwykle renderowana dynamicznie, konieczny jest
sześciokrotny rendering tej samej sceny, ale w małej
rozdzielczości
Założenie: obiekt jest mały w stosunku do otoczenia
Obiekt nie będzie się odbijał ‘sam w sobie’!
Znalezienie kierunku odbicia i odczyt z tekstury
Rozmycie tekstury dla obiektów nieidealnie
połyskliwych
Załamanie
Podobnie jak odbicie, tylko kierunek załamania
Uproszczenie: promień załamany tylko raz
Dyspersja – inne
współczynniki za-
łamania dla
składowych RGB
Efekt Fresnela
Odbicie i załamanie w zależności od kąta padania
Aproksymacja: R(θ) = R0 + (1 − R0)(1 − cos θ)5