22
Računarska grafika 2 13M111RG2 2 Koordinatni sistemi i transformacije

13M111RG2...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

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Računarska grafika 2

13M111RG2

2 Koordinatni sistemi i transformacije

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.

Koordinatni sistem posmatrača

EX

EZ

EY

WXWZ

WY

OX

OZ

OY

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

Vidljiv prostor

• eng. view frustum

nf

y

xz

O

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.

Ispravna interpolacijaatributa temena

12

13

12

13

zzzz

aaaa

--

=--

tz

tz

z

21

3 1)1(11

+-=

tzat

za

za

2

2

1

1

3

3 )1( +-=