13M111RG2...Koordinatni sistem objekta •eng. object space, model space •Modeliranje se vrši u...
Transcript of 13M111RG2...Koordinatni sistem objekta •eng. object space, model space •Modeliranje se vrši u...
Predstavljanje objekata
• Načini predstavljanja objekata– Egzaktno (matematička formula)– Aproksimativno
• skup/mreža poligona• vokseli
• Moderan hardver optimizovan za crtanje/popunjavanje poligona• Za najjednostavniji vid prikazivanja
dovoljna geometrijska definicija– skupa temena (3D pozicije)– način povezivanja
temena u poligone
Koordinatni sistemi / prostori• Grafičke biblioteke najčešće razlikuju tri koordinatna sistema
za definisanje i vizuelizaciju objekata– Koordinatni sistem objekta (object space, model space)– Koordinatni sistem “realnog” sveta (world space)– Koordinatni sistem posmatrača (eye space, camera space)
• Namena: razdvojiti tri koncepta– Modeliranje – definisanje (formiranje) objekta– Raspoređivanje – sastavljanje scene, odnosno zadavanje pozicije
i orijentacije objekata u prostoru– Vizuelizacija – posmatranje scene
• Predstavljanje koordinatnih sistema: matrice 4x4• Preslikavanje iz jednog sistema u drugi: množenje matrica• Koristi se konvencija pokretnog objekta
Koordinatni sistem objekta
• eng. object space, model space• Modeliranje se vrši u koordinatnom sistemu objekta
– Koordinatni početak referentna tačka za sva temena– Izbor pozicije k.p. proizvoljan (birati na osnovu geometrije
ili simetrije objekta)– Izbor orijentacije objekta
u odnosu na ose takođe proizvoljan
• Primetiti: modeliranje je nezavisnood pozicije objekta u sceni
X
ZY
Koordinatni sistem sveta
• Koordinatni sistem sveta (world space)– Koordinatni sistem referentan za datu scenu– Koordinatni početak – fiksna referentna tačka u prostoru– Pozicija i orijentacija kamere, svih objekata i izvora svetla u sceni
definiše se u odnosu na ovaj koordinatni početak, odnosno sistem
WXWZ
WY
OY
OZ
OXOY
OX
OZ
Preslikavanje
• Transformacija k.s. objekta→k.s. sveta (obj. to world transform)
X koordinata nekog temena u k.s.o. V=(VX, VY, VZ) na osi WX?
WXWZ
WY
OY
OZ
OX
1) U opštem slučaju: projekcija OX, OY ili OZ na WX nije 0.2) VX, VY i VZ su definisani duž OX, OY i OZ, respektivno
Dakle: VX’=ProjWx(OX)·VX+ ProjWx(OY)·VY+ ProjWx(OZ)·VZ + TX
Slično za VY’ i VZ’.
Interpretacija sadržajamatrice transformacije
VX’=ProjWx(OX)·VX+ ProjWx(OY)·VY+ ProjWx(OZ)·VZ + TX
úúúú
û
ù
êêêê
ë
é
=
úúúú
û
ù
êêêê
ë
é
×
úúúú
û
ù
êêêê
ë
é
1'V'V'V
1VVV
1000T)Z(O)Z(O)Z(OT)Y(O)Y(O)Y(OT)X(O)X(O)X(O
Z
Y
X
Z
Y
X
ZZYX
YZYX
XZYX
WXWZ
WY
OY
OZ
OX
TX WXWZ
WYOY
OZ
OX Kako izgledatransformacijaiz k.s. sveta u k.s. objekta
?
Koordinatni sistem posmatrača
• eng. camera space, eye space• Definiše poziciju i orijentaciju virtuelne kamere
u odnosu na koordinatni sistem sveta• Kako se vrši preslikavanje k.s. sveta → k.s. posmatrača ?• Po analogiji sa prethodnim: odredi se matrica koja definiše
poziciju i orijentaciju k.s. sveta u odnosu na k.s. posmatrača.
Preslikavanje iz prostora objektau prostor kamere
• U dva koraka – potrebne 2 matrice– 1) k.s. objekta → k.s. sveta– 2) k.s. sveta → k.s. posmatrača
• Kako zadržati 3 koordinatna sistema,ali jednu matricu?
VMMV WOEW ××= ®®'
EOM ®
Preslikavanje iz prostora objektau prostor kamere
• Grafičke biblioteke obično imaju samo jednu matricukojom se vrši transformacija O→E– model-view matrix (OpenGL do verzije 3.0: GL_MODELVIEW)– objedinjuje transformaciju modela i pogleda
• Najpre se postavi transformacija pogleda– zapravo pozicija i orijentacija k.s. sveta u odnosu na k.s. posmatrača– ona je zajednička za sve objekte
• Zatim se za svaki objekat zada njegova transformacija– Push/Pop matrix
Horizontalno vidno polje
• eng. horizontal field of view: a
)2/tan(1a
=e
a/2a/2
e
x = -1 x = 1
x
z
O
Projekciona ravan
Vertikalno vidno polje
• eng. vertical field of view: b ≠ a• odnos visine i širine ekrana (eng. aspect ratio): a
b/2
b/2
e
y = a
y
zO
Projekciona ravan
y = -a
glFrustum:Levo: -n/eDesno: n/eGore: an/eDole: -an/e
Projekcija (1)
• Preslikava vidljiv prostor (zapreminu, zarubljenu piramidu)na kocku, centriranu u (0,0,0), koord. temena -1 ili 1.
• Kocka predstavlja homogen prostor odsecanja(eng. homogeneous clip space)
• Mapiranje se vrši matricom projekcije 4x4– zamena negativne Z koordinate tačke (u k.s. pogleda)
u W koordinatu transformisane tačke
• Deljenje sa W daje 3D tačku unormalizovanim koordinatama uređaja (eng. normalized device coordinates, NDC)
n
fb
tl
r
-1
1
1
-1
-1
1
O
PPp
Projekcija (2)
1,,, zyx PPPP =x
zp P
Pnx -=
yz
p PPny -=
P’
12'
12'
--
-=
--
-=
btby
y
lrlx
x
p
p
btbt
PP
btny
lrlr
PP
lrnx
z
y
z
x
-+
-÷÷ø
öççè
æ-
-=
-+
-÷÷ø
öççè
æ-
-=
2'
2'
?'z
Projekcija (3)
• P je u vidljivom prostoru →• Potrebno preslikavanje:
– primetiti: dolazi do ogledanja Z ose,homogen prostor odsecanja je levi koordinatni sistem
• Dodatni zahtev: preslikavanje mora biti linearnopo recipročnoj vrednosti z (kasnije će biti objašnjeno zašto).
• Funkcija kojom se vrši preslikavanje:– A i B se određuju smenom z=−n, z’=−1 i z=− f, z’=1
nPf z -££-
1,1 ®--®- fn
BzAz +='
nfnf
Pnfnfz
z -+
+÷÷ø
öççè
æ-
--=
12'
Projekcija (4)
• U izrazima za x’, y’ i z’ pojavljuje se deljenje sa –Pz
zzzz PPzPyPxzyx ----=Û= ,',',''',','' PP
nfnfP
nfnfPz
PbtbtP
btnPy
PlrlrP
lrnPx
zz
zyz
zxz
--
-+
-=-
-+
+-
=-
-+
+-
=-
2'
2'
2'
Linearne funkcije koordinata tačke P
úúúú
û
ù
êêêê
ë
é
×
úúúúúúú
û
ù
êêêêêêê
ë
é
--
--+
-
-+
-
-+
-
=×=
10100
200
020
002
'z
y
x
PROJ PPP
nfnf
nfnfbtbt
btn
lrlr
lrn
PMPMatrica MPROJ transformiše tačke izk.s. posmatrača (kamere) u homogeni prostor odsecanja.
Preslikavanje iz 3D u 2D koordinateRekapitulacija
úúúú
û
ù
êêêê
ë
é
1VVV
Z
Y
XMatrica
transformacije modela i pogleda
Koordinateu prostoru
objekta
Koordinateu prostoru
posmatrača Matrica projekcije
Deljenje sa w
Koordinateu prostoruodsecanja
Normalizovanekoordinate
uređajaTransformacija prikaznog prozora
Ekranskekoordinate
úúú
û
ù
êêê
ë
é
Z
Y
X
SSS
Ispravna interpolacijau projekciji sa perspektivom
• Temena nose informacije koje se interpoliraju(boja, osvetljaj, koordinate u prostoru teksture, itd)
• Linearna interpolacija je neadekvatna(iako greška uglavnom nije primetna,osim za teksture)
• Potrebno je izvršiti ispravnu interpolaciju
Ispravna interpolacijau projekciji sa perspektivom
0, ¹=+ ccbzax Jednačina prave koja prolazi kroz tačke (x1,z1) i (x2,z2).
Zrak iz (0,0) koji preseca pravu u tački (x,z),preseca projekcionu ravan u (p,-e).
ze
xp -= czb
eap
=÷øö
çèæ +-
tz
tzz 213
1)1(11+-=
cb
ceap
z+-=
1
Za p3 = (1−t)p1 + t p2, dobija se:
Zaključak: recipročna vrednost z koordinate se ispravnointerpolira linearnom interpolacijom.