Grafika komputerowa
Potok graficzny 3D
Rados"aw Mantiuk
Wydzia" Informatyki
Zachodniopomorski Uniwersytet Technologiczny
Grafika komputerowa
System graficzny
Dane wej$ciowe
scena 3D
algorytm graficzny
obraz 2D
Algorytm tworz!cy
obraz wyj$ciowy na
podstawie sceny 3D
Dane wyj$ciowe
System graficzny
czasu rzeczywistego
O"wietlenie lokalne
System
graficzny 2D
System grafiki
realistycznej
Graficzne interfejsy
u#ytkownika
Grafika bardzo du#ej
jako$ci.
O"wietlenie
globalne
.
grafika realistyczna/fotorealistyczna
Grafika komputerowa
O$wietlenie globalne i lokalne
O$wietlenie globalne
O$wietlenie lokalne
Grafika komputerowa
Potok graficzny
Scena 3D
• wielok!ty (po"o#enie wierzcho"ków XYZ))
• kolory (wektor RGB)
• wektory normalne (N)
• tekstury (wspó". tektury (u,v))
bufor ramki
(ang. frame buffer)
wspó!. lokalne
-> wspó!. globalne
(macierz transform.)
rzutowanie
(macierz
rzutowania)
obliczenie koloru
(
równanie
o"wietlenia
dla
wierzcho"ków)
przej$cie do
wspó". rastrowych
clipping
teksturowanie
cieniowanie
(p"askie lub
Gouraud)
pomijanie
niewidocznych
pikseli
(
bufor Z
)
• Wykonywanie kolejnych operacji, dane wyj$ciowe z
danej operacji s! wej$ciem dla kolejnej.
• Potok akumuluje b"%dy.
• Zakres informacji nie powi%ksza si% w kolejnych
krokach potoku.
Grafika komputerowa
Scena 3D
Zbiór trójwymiarowych danych wej$ciowych wykorzystywanych do
wygenerowania obrazu wyj$ciowego 2D.
-
Definicja geometrii obiektów 3D.
-
Definicja materia"ów pokrywaj!cych obiekty.
- Kolor powierzchni obiektów.
- Tekstura.
- W"asno$ci powierzchni.
-
Kamera.
-
&ród"a $wiat"a.
-
Parametry $rodowiska (mg"a, dym, itp.).
Obraz wyj$ciowy
Scena 3D
Grafika komputerowa
Scena 3D - Reprezentacje geometrii obiektów
Reprezentacja obiektów geometrycznych
-
obiekty parametryczne opisane równaniami matematycznymi,
-
reprezentacja wielok!towa
,
-
obiekty z"o#one,
-
reprezentacja fraktalna,
-
krzywe i powierzchnie,
-
obiekty CSG.
Grafika komputerowa
Scena 3D - Modelowanie 3D
Grafika komputerowa
Scena 3D - Reprezentacja wielok!towa (1)
!
Trójk#t - obiekt podstawowy (wspó!p!aszczyznowo"$ wierzcho!ków trójk#ta)
!
Du%a liczba identycznych obiektów.
!
Wykorzystanie tych samych algorytmów do przetwarzania wszystkich
obiektów (architektura SIMD kart graficznych).
!
Ograniczona dok!adko"$ odwzorowania powierzchni kszywoliniowych
(aproksymacje powierzchni krzywoliniowych).
!
Du%a liczba obiektów potrzebna do zbudowania prostego kszta!tu geom.
(przyk!ad kuli).
Grafika komputerowa
Scena 3D - Reprezentacja wielok!towa (2)
Optymalizacja reprezentacji wielok!towej - unikanie powtórze' definicji
wierzcho"ków.
konfiguracja „fan”
konfiguracja „mesh”
v8
v9
v10
konfiguracja „strip”
Grafika komputerowa
Scena 3D -
Powierzchnie
krzywoliniowe (1)
• Opisane za pomoc! równa' matematycznych (ang. implicit representation)
• Reprezentacja parametryczna (ang. parametric representation)
Spline
- parametryczna krzywa/powierzchnia wielomianowa
funkcja uwik"ana
Grafika komputerowa
Scena 3D -
Krzywa Biezier’a
Krzywa Beziera
wyznaczana jest przez cztery punkty kontrolne
Odcinki wyznaczane przez PoP1 oraz P3P2 s! styczne do krzywej.
Grafika komputerowa
Scena 3D - Powierzchnie krzywoliniowe (2)
&ata Beziera
(ang.
Bezier patch
) - 16 punktów kontrolnych
NURBS
- ang. non-uniform, rational B-spline - uogólnienie krzywych/powierzchni Bezier’a.
NURBS nie zmianiaj# si' po przekszta!ceniach afinicznych i perspektywicznych.
Sk"adaj! si% z wielok!tów o kraw%dziach b%d!cych krzywymi Bezier’a.
(aty "!czone s! w powierzchnie krzywoliniowe Bezier’a (Bezier splines).
B-splines
- krzywe/powierzchnie parametryczne powsta"e poprzez po"!czenie "at.
Pictures courtesy of MIT (Lecture Notes 6.837)
Grafika komputerowa
Scena 3D - Powierzchnie krzywoliniowe (3)
Czajnik zbudowany z "at Bezier’a (32 "aty).
Courtesy of MIT (Lecture Notes 6.837)
Grafika komputerowa
Scena 3D - Powierzchnie krzywoliniowe (4)
Dok"adno$) odwzorowania powierzchni kontrolowana przez liczb% wielok!tów w
"acie. Obiekty deformowane s! w sposób ci!g"y.
Courtesy of MIT (Lecture Notes 6.837)
Grafika komputerowa
Scena 3D - Reprezentacja obrotowa (ang. Sweep)
Powielanie kszta"tu 2D w 3D.
Courtesy of MIT (Lecture Notes 6.837)
Grafika komputerowa
Scena 3D - Reprezentacja proceduralna (1)
Reprezentacja fraktalna
- tworzenie kszta"tów geometrycznych za pomoc!
algorytmów.
Courtesy of MIT (Lecture Notes 6.837)
Grafika komputerowa
Scena 3D - Reprezentacja proceduralna (2)
Tworzenie siatek terenów
(ang. high fields)
Systemy L
Picrues - courtesy of MIT (Lecture Notes 6.837)
Grafika komputerowa
Scena 3D - Obiekty CSG
CSG - ang. Constructive Solid Geometry
Courtesy of MIT (Lecture Notes 6.837)
Grafika komputerowa
Scena 3D - Reprezentacja hierarchiczna
Obiekty z"o#one sk"adaj! si% z wielu
obiektów podstawowych.
Powtarzaj!ce si% elementy
reprezentowane s! za pomoc!
transformacji geometrycznych.
Courtesy of Andries van Dam
Grafika komputerowa
Scena 3D - Kamera (1)
!
Definiuje jaka cz%$) przestrzeni trójwymiarowej b%dzie widoczna na wyj$ciowym
obrazie 2D.
!
Okre$la sposób rzutowania (prostok!tne, perspektywiczne, itp.).
!
eyep
!
FOV
!
up
!
xres
!
yres
!
lookp
!
twist
!
k#t patrzenia FOV (ang. Field of View)
!
punkt po!o%enia kamery
!
punkt, na który patrzy kamera
!
k#t skr'cenia kamery
!
rozdzielczo"$ pionowa i pozioma
!
orientacja obrazu
!
aspekt (ang. aspect ratio)
Courtesy of Andries van Dam
Grafika komputerowa
Scena 3D - Kamera (2)
k!t patrzenia (FOV)
powierzchnie obcinaj!ce
(ang. clipping planes)
Courtesy of Andries van Dam
Grafika komputerowa
Scena 3D - Kamera (3)
Clipping
usuwanie obiektów znajduj!cych si% poza polem widzenia.
Courtesy of Andries van Dam
Culling
- usuwanie obiektów zas"oni%tych przez inne obiekty
(np. ang.
backface culling
).
Grafika komputerowa
Scena 3D - &ród"a $wiat"a (1)
Emisja widzialnej fali elektromagnetycznej (400-700 nm)
!wiat"o punktowe
(point light)
!wiat"o kierunkowe
(distant light)
!wiat"o sto#kowe
(spot light)
Grafika komputerowa
Scena 3D - &ród"a $wiat"a (2)
Naturalne *ród"a $wiat"a - generowanie
mi%kkich cieni (ang. soft shadows)
.
!wiat"o liniowe
(linear light)
!wiat"o powierzchniowe
(area light)
Grafika komputerowa
Scena 3D - Materia" (1)
Sk!adowe koloru
obiektu:
-
kolor otoczenia (ang.
ambient
),
-
kolor "wiat!a rozproszonego (ang.
diffuse
),
-
kolor rozb!ysków (ang.
specular
).
ambient
diffuse
specular
Warto$) koloru definiowana jako wektory RGB o sk"adowych R (red), G(green), B(blue)
= ambinet + diffuse
= ambinet + diffuse + specular
Grafika komputerowa
Scena 3D - Materia" (2)
W!asno"ci powierzchni
obiektów:
-
powierzchnie rozpraszaj!ce,
-
powierzchnie odbijaj!ce (lustrzane),
-
powierzchnie za"amuj!ce (przezroczyste).
!
"
!
"
!
"
!
"
powierzchnia rozpraszaj#ca
powierzchnia odbijaj#ca
- k#t padania równy jest
k#towi odbicia
powierzchnia za!amuj#ca
Grafika komputerowa
Scena 3D - Materia" (3)
Teksturowanie
powierzchni obiektów.
Grafika komputerowa
Sceny 3D - Parametry $rodowiska
Parametryzacja przestrzeni sceny.
Mg!a
Grafika komputerowa
Transformacja geometrii
Obiekt znajduje si% w pocz!tku
uk"adu globalnego (
ang. model
coordinates
) .
W wyniku transformacji jest
przekszta"cany do po"o#enia i
kszta"tu docelowego (ang.
world
coordinates
).
Wspó!rz'dne lokalne modelu -> Wspó!rz'dne globalne
Grafika komputerowa
Rzutowanie
Odwzorowanie fragmentu przestrzeni na p!aszczy(nie
perspektywiczne
prostok#tne
Grafika komputerowa
Rzutowanie prostok!tne (równoleg"e) (1)
- zachowanie proporcji obiektów
- szybka implementacja
- brak perspektywy
Ang. orthographic (parallel) projection
Grafika komputerowa
Rzutowanie prostok!tne (równoleg"e) (2)
transformacja do wspó"rz%dnych kanonicznych
Obliczanie wspó"rz%dnych wierzcho"ków po rzutowaniu
- zerowanie wspó"rz%dnej Z
- skalowanie
Grafika komputerowa
Rzutowanie perspektywiczne
Grafika komputerowa
Rzutowanie perspektywiczne
p.z
q.y
Y
Z
p.y
1
q
p
q.y = p.y / p.z
q.x = p.x / p.z
q.z = 1
rzutnia
Grafika komputerowa
Transformacja do wspó"rz%dnych ekranu
!
x
'
=
x + 1
2
" xres
y
'
=
y + 1
2
" yres
Obliczenie wspó"rz%dnych rastrowych
wierzcho"ków obiektów
(0,0)
(xres,yres)
Grafika komputerowa
Testowanie widoczno$ci obiektów
Bufor Z (ang. Z-buffer)
Miejsce w pami%ci osobne dla ka#dego piksela przeznaczone na zapami%tanie aktualnej
warto$ci Z piksela. Wielko$) bufora Z decyduje o precyzji testowania widoczno$ci
(obecnie stosuje si% Z-bufory 32-bitowe).
Warto$) bufora uaktualniana jest dla ka#dego
piksela i ka#dego trójk!ta.
Warto$ci z dla pikseli z wn%trza trójk!ta s!
interpolowane na podstawie po"o#enia
wierzcho"ków trójk!ta.
Grafika komputerowa
Literatura
1.
Tomas Moller, Eric Haines, Real-Time Rendering, A K Peters, ISBN 1-56881-101-2
2.
“Lecture notes on Graphics. Lecture 6.837”, Computer Graphics Group,
Massachusetts Institute of Technology,
http://groups.csail.mit.edu/graphics/classes/6.837/F01/notes.html.