74
Stvaranje pogleda u 3D Nela Bosner Transformacija 2D scene u otvor pogleda Pogled u 3D Projekcije Definiranje proizvoljnog pogleda u 3D Implementacija planarnih projekcija i 3D pogleda Konaˇ cna im- plementacija 3D pogleda Stvaranje pogleda u 3D 4. dio kolegija Raˇ cunalna grafika Nela Bosner

Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Stvaranje pogleda u 3D4. dio kolegija Racunalna grafika

Nela Bosner

Page 2: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Transformacija 2D scene u otvor pogleda

Scena koju prikazujemo zadana je unutar pravokutnogpodrucja (prozora) u svom koordinatnom sustavu.(OpenGL: gluOrtho2D())Scena se prikazuje na zaslonu unutar pravokutnogpodrucja kojeg zovemo otvor pogleda (viewport) ukoordinatnom sustavu uredaja. (OpenGL:glViewport())Definira se transformacija koja preslikava prozor sceneu otvor pogleda.Ukoliko ta dva pravokutnika nemaju jednaki odnosizmedu visine i širine, mora se primijeniti neuniformnoskaliranje.

-

���

AAA

%%%

eee

Page 3: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Transformacija MPOP :

- - - -

6 6 6 6t t t ty y

x x

v v

u u(xmin, ymin)

(xmax , ymax )

(umin, vmin)

(umax , vmax )

(1) (2) (3) (4)

1 Prozor u koordinatnom sustavu scene.2 Prozor se translatira u ishodište.3 Prozor se skalira na dimenzije otvora pogleda.4 Otvor pogleda se translatira na svoj konacan položaj.

Page 4: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

MPOP =T (umin, vmin) · S(

umax−uminxmax−xmin

, vmax−vminymax−ymin

)· T (−xmin,−ymin)

=

umax−uminxmax−xmin

0 −xmin · umax−uminxmax−xmin

+ umin

0 vmax−vminymax−ymin

−ymin · vmax−vminymax−ymin

+ vmin

0 0 1

Mnogi graficki paketi kombiniraju transformaciju sceneu otvor pogleda sa obrezivanjem primitiva.

Page 5: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Pogled u 3D

Stvaranje pogleda u 3D je kompliciranije jerimamo jednu dimenziju višeuredaji za prikazivanje su 2D

Uvode se projekcije na 2D ravnineDefinira se

volumen pogleda koji se koristi za obrezivanjeprojekcija na ravninu projekcijeotvor pogleda

Konceptualni model za stvaranje pogleda u 3D:

Obrezivanje premavolumenu pogleda

Projekcija naravninu

Transformacija uotvor pogleda,

u 2D koordinatamauredaja

- - - -

Page 6: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

ProjekcijePerspektivneprojekcije

Paralelne projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Projekcije

U racunalnoj grafici: preslikavanje sa 3D u 2D —planarne projekcije.Projekcija 3D objekta se definira

pomocu pravaca projekcije — projektori,koji proizlaze iz jedne tocke — središte projekcije,prolaze kroz svaku tocku objekta,kod sjecišta sa ravninom projekcije stvaraju slikuprojekcije.

Projekcija linije je linija — moraju se preslikati samokrajnje tocke.

Slika: (a) Linija AB i njena perspektivna projekcija A’B’. (b) Linija AB i njenaparalelna projekcija A’B’.

Page 7: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

ProjekcijePerspektivneprojekcije

Paralelne projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Projekcije dijelimo u dvije osnovne klase:perspektivne — udaljenost izmedu središta i ravnineprojekcije je konacnaparalelne — udaljenost izmedu središta i ravnineprojekcije je beskonacna

Kod perspektivne projekcije treba eksplicitno definiratisredište projekcije.Kod paralelne projekcije treba definirati smjerprojekcije:

vektor v = P − P ′ = (x − x ′, y − y ′, z − z ′, 0)vektor odgovara tocci u beskonacnostiperspektivna projekcije cije središte je u beskonacnostipostaje paralelna projekcija

Page 8: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

ProjekcijePerspektivneprojekcije

Paralelne projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Perspektivne projekcije

izgleda realisticnoima efekt perspektivnog skracivanja — velicina slikeprojekcije nekog objekta je obrnuto proporcionalnaudaljenosti objekta od središta projekcijene cuva udaljenostikutevi se cuvaju samo na stranicama objektaparalelnim sa ravninom projekcijene cuva se opcenita paralelnost pravacaslike projekcije paralelnih pravaca koji nisu paralelni saravninom projekcije sijeku se u jednoj tocci zvanojnedogledako su pravci paralelni sa nekom od 3 koordinatnih osi,tada se njihove slike sijeku u osnom nedogleduosnih nedogleda može biti najviše 3, ovisno kolikokoordinatnih osi sijece ravnina projekcije

Page 9: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

ProjekcijePerspektivneprojekcije

Paralelne projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Perspektivne projekcije se dijele prema broju osnihnedogleda.

Slika: Perspektivna projekcija kocke sa 1 nedogledom na ravninuokomitu na z os.

Page 10: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

ProjekcijePerspektivneprojekcije

Paralelne projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Slika: Konstrukcija perspektivne projekcije kocke sa 1nedogledom na ravninu okomitu na z os.

Page 11: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

ProjekcijePerspektivneprojekcije

Paralelne projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Slika: Centrirana perspektivna projekcija kuce sa 1 nedogledom.

Page 12: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

ProjekcijePerspektivneprojekcije

Paralelne projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Slika: Perspektivna projekcija kuce sa 1 nedogledom.

Page 13: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

ProjekcijePerspektivneprojekcije

Paralelne projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Slika: Perspektivna projekcija kocke sa 2 nedogleda na ravninukoja sijece x i z osi.

Page 14: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

ProjekcijePerspektivneprojekcije

Paralelne projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Slika: Perspektivna projekcija kuce sa 2 nedogleda.

Page 15: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

ProjekcijePerspektivneprojekcije

Paralelne projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Paralelne projekcije

izgleda manje realisticnonema opcenitog perspektivnog skracivanjamože biti konstantnog skracivanja duž svake osislika projekcije se može koristiti za mjerenje duljinacuva se paralelnost pravacakutevi se cuvaju samo na stranicama objektaparalelnim sa ravninom projekcije

Paralelne projekcije se dijele u dvije vrste, ovisno oodnosu izmedu smjera projekcije i normale na ravninuprojekcije:

ortografske paralelne projekcije — ta dva smjera suparalelnakose paralelne projekcije — ta dva smjera nisuparalelna, ali je ravnina projekcije okomita na jednu odkoordinatnih osi

Page 16: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

ProjekcijePerspektivneprojekcije

Paralelne projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Najcešce vrste ortografskih projekcija su:nacrttlocrtbokocrt

kod njih je ravnina projekcije okomita na jednu odkoordinatnih osi.Aksonometrijske ortografske projekcije imaju ravninuprojekcije koja nije okomita na neku koordinatnu os.

izometrijska projekcija — normala ravnine projekcijezatvara jednake kuteve sa koordinatnim osima(skracivanje u smjeru svih koordinatnih osi je jednako)

Cesto korištene kose projekcije su:cavalier — kut izmedju smjera projekcije i ravnineprojekcije je 45◦ (slika linije okomite na ravninu ima istuduljinu kao i sama linija)cabinet — kut izmedju smjera projekcije i ravnineprojekcije je arctan(2) = 63.4◦ (slika linije okomite naravninu je upola kraca od same linije)

Page 17: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

ProjekcijePerspektivneprojekcije

Paralelne projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Slika: Konstrukcija triju ortografskih projekcija.

Page 18: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

ProjekcijePerspektivneprojekcije

Paralelne projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Slika: Nacrt kuce.

Page 19: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

ProjekcijePerspektivneprojekcije

Paralelne projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Slika: Bokocrt kuce.

Page 20: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

ProjekcijePerspektivneprojekcije

Paralelne projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Slika: Konstrukcija izometrijske projekcije kocke.

Page 21: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

ProjekcijePerspektivneprojekcije

Paralelne projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Slika: Izometrijska projekcija kuce.

Page 22: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

ProjekcijePerspektivneprojekcije

Paralelne projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Slika: Konstrukcija kose projekcije kocke.

Page 23: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

ProjekcijePerspektivneprojekcije

Paralelne projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Slika: Cavalier projekcije kocke na ravninu z = 0. (a) Smjerprojekcije je (

√2/2,

√2/2,−1). (b) Smjer projekcije je

(√

3/2, 1/2,−1).

Page 24: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

ProjekcijePerspektivneprojekcije

Paralelne projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Slika: Cabinet projekcije kocke na ravninu z = 0. (a) Smjerprojekcije je (

√2/4,

√2/4,−1). (b) Smjer projekcije je

(√

3/4, 1/4,−1).

Page 25: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Definiranje proizvoljnog pogleda u 3D

Moramo još specificirati volumen pogleda.Ravnina projekcije = ravnina pogleda (view plane) sedefinira sa:

referentnom tockom pogleda (VRP)normalom ravnine pogleda (VPN)ona može biti bilo gdje u odnosu na objekte koji seprojiciraju

Na ravnini pogleda definira se prozor — sve što seprojiciralo unutar njega preslikava se u otvor pogleda iprikazuje se na zaslon.Prvo moramo definirati koordinatni sustav koji ukljucujeravninu pogleda — referentni koordinatni sustav 3Dpogleda (VRC).

Page 26: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

VRC definiramo na sljedeci nacin:ishodište je u VRPos n je u smjeru VPN-aos v je odredena slikom projekcije vektora usmjerenogprema gore (VUP); projekcija je na ravninu pogledaparalelna sa VPN-omos u je definirana tako da u, v i n cine desni koordinatnisustav

Page 27: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Slika: Perspektivna projekcija kuce kojoj je VUP u smjeru y osi.

Page 28: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Slika: Perspektivna projekcija kuce sa zarotiranim VUP-om.

Page 29: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Sada možemo definirati koordinate prozora: (umin, vmin)i (umax , vmax).

VRP se ne mora poklapati sa središtem prozora (CW).

Page 30: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Za perspektivnu projekciju se definira:središte projekcije kao referentna tocka projekcije(PRP) u VRC-u

Za paralelnu projekciju se definira:smjer projekcije kao vektor od PRP do središta prozora(DOP=CW-PRP)

volumen pogleda omeduje dio scene koji ce ostatinakon obrezivanja i biti projiciran na ravninu pogleda.

za perspektivnu projekciju — polubeskonacnapiramida sa vrhom u PRP-u i bridovima koji prolazekroz vrhove prozoraza paralelnu projekciju — beskonacni paralelopipedsa stranicama paralelnim smjeru projekcije koje prolazekroz stranice prozora

Page 31: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Slika: Volumen pogleda u obliku polubeskonacne priramide zaperspektivnu projekciju.

Page 32: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Slika: Volumen pogleda u obliku beskonacnog paralelopipeda zaortografsku paralelnu projekciju.

Page 33: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Slika: Volumen pogleda u obliku beskonacnog paralelopipeda zakosu paralelnu projekciju.

Page 34: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

U racunalnoj grafici koriste se konacni volumenipogleda, jer se žele izbaciti objekti koji su preblizu ilipredaleko.Definiraju se prednja i stražnja ravnina za obrezivanje,paralelne sa ravninom pogleda:

specificiraju se predznacene velicine prednja udaljenostF i stražnja udaljenost B u odnosu na VRP u smjeruVPN-aF je nenegativan, a B je negativan

Page 35: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Slika: Krnji volumen pogleda za perspektivnu projekciju.

Page 36: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Slika: Krnji volumen pogleda za ortografsku paralelnu projekciju.

Page 37: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Slika: Krnji volumen pogleda za kosu paralelnu projekciju.

Page 38: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Slika: Perspektivna projekcija kuce sa odrezanim stražnjimdijelom.

Page 39: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

Implementacija planarnih projekcija i 3Dpogleda

Kada imamo zadanu projekciju i volumen pogleda, processtvaranja pogleda sastoji se od

obrezivanja prema volumenu pogledaprojiciranja na ravninu pogleda

i zbog pojednostavljena racunanja izvodi se na sljedecinacin:

1 racunanje i primjena normalizirajuce transformacijekoje transformira proizvoljan volumen pogleda ukanonski volumen pogleda

2 obrezivanje prema kanonskom volumenu pogleda —jednostavno se primijenjuje kao poopcenje 2D slucaja

3 projekcija na ravninu pogleda — jednostavan oblikmatrica

4 transformacija u otvor pogleda, u 2D koordinatamauredaja

Page 40: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

Kanonicki volumeni pogleda:za paralelnu projekciju omeden je ravninama

x = −1, x = 1, y = −1, y = 1, z = 0, z = −1

transformacija u kanonicki volumen pogleda: Nparza perspektivnu projekciju omeden je ravninama

x = z, x = −z, y = z, y = −z, z = zmin, z = −1

transformacija u kanonicki volumen pogleda: Nper

- -

6 6

���

@@@

��

@@

x ili y x ili y

−z −z

−1 −1

1 1

−1 −1zmin

prednjaravnina

stražnjaravnina

stražnjaravnina

- � �

prednjaravnina��*

paralelna projekcija perspektivna projekcija

Page 41: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

Normalizirajuce transformacije:Paralelna projekcija

Izracunat cemo Npar za najopcenitiji slucaj koseparalelne projekcije.Redoslijed transformacije za dobivanje Npar je sljedeci:

1 Translatiraj VRP u ishodište.2 Zarotiraj VRC tako da n os (VPN) postane z os, u os

postane x os, i v os postane y os.3 Primijeni transformaciju smicanja tako da smjer

projekcije postane paralelan z osi.4 Translatiraj i skaliraj kako bismo dobili kanonski

volumen pogleda za paralelnu projekciju.

Page 42: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

1. korak: Translacija T (−VRP)2. korak: Definiramo rotaciju

R =

r1x r2x r3x 0r1y r2y r3y 0r1z r2z r3z 00 0 0 1

,

pri cemu je

R3×3 =

r1x r2x r3xr1y r2y r3yr1z r2z r3z

=

RxRyRz

.

Zbog cinjenice da je R3×3 ortogonalna matrica vrijediR3×3 rotira RT

z u z os, a kako se i VPN rotira u z osslijedi

Rz =VPNT

‖VPN‖

Page 43: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

R3×3 rotira RTx u x os, a kako se i u rotira u x os, a

u ⊥ VUP i u ⊥ VPN slijedi

Rx =(VUP × RT

z )T

‖VUP × RTz ‖

.

R3×3 rotira RTy u y os, a kako se i v rotira u y os, a

v ⊥ VPN i v ⊥ u slijedi

Ry = (Rz × Rx)T .

Sada se ravnina projekcije nalazi u xy ravnini (tj.okomita je na z os), a prednja i stražnja ravnina zaobrezivanje su paralelne s njom.3. korak: Definiramo smik duž z osi koji transformiravolumen pogleda tako da sve njegove ravnine buduokomite na jednu od koordinatnih osi.

Page 44: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

Smik treba transformirati smjer projekcije (DOP) dabude paralelan z osi.DOP = CW − PRP, a PRP je specificiran u VRCsustavu. Koraci 1 i 2 su pomakli VRC sustav tako da seon sada poklapa s koordinatnim sustavom scene.Imamo

DOP =

dopxdopydopz

0

, CW =

umax +umin

2vmax +vmin

201

, PRP =

prpuprpvprpn

1

,

tada je

DOP = CW − PRP =

umax +umin

2 − prpuvmax +vmin

2 − prpv−prpn

0

.

Page 45: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

- -

6 6

������

������

��1

�-

y y

−z −z

DOP

VPNDOP′

VPN

(a) (b)

Slika: Smik transformira paralelogram prikazan sa (a) u kvadarprikazan sa (b). VPN je nepromijenjen jer je paralelan z osi.

Matrica smika je oblika

SMpar = SMxy (smx , smy ) =

1 0 smx 00 1 smy 00 0 1 00 0 0 1

,

Page 46: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

SMxy (smx , smy ) ·

xyz1

=

x + smx · zy + smy · z

z1

.

Parametri smx i smy biraju se tako da

DOP ′ = [ 0 0 dopz 0 ]T = SMpar · DOP,

odakle slijedi

smx = −dopx

dopz, smy = −

dopy

dopz.

Za ortografsku projekciju je dopx = dopy = 0 pa seSMpar svodi na identitetu.

Transformirani volumen pogleda je sada omedenravninama:

x = umin, x = umax , y = vmin, y = vmax , z = B, z = F .

Page 47: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

4. korak: Volumen pogleda transformiran smikom sadasvodimo na kanonski volumen pogleda. To postižemona sljedeci nacin.

Translatiramo središte prednje strane u ishodište:

Tpar = T(−umax + umin

2,−vmax + vmin

2,−F

)Skaliramo na dimenzije 2× 2× 1 kanonskog volumenapogleda:

Spar = S(

2umax − umin

,2

vmax − vmin,

1F − B

)Konacno dobivamo

Npar = Spar · Tpar · SMpar · R · T (−VRP).

Page 48: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

Normalizirajuce transformacije:Perspektivna projekcija

Izracunat cemo Nper za perspektivnu projekciju.Redoslijed transformacije za dobivanje Nper je sljedeci:

1 Translatiraj VRP u ishodište.2 Zarotiraj VRC tako da n os (VPN) postane z os, u os

postane x os, i v os postane y os.3 Translatiraj središte projekcije, dano sa PRP, u

ishodište.4 Primijeni transformaciju smicanja tako da se središnja

linija volumena pogleda poklopi sa z osi.5 Skaliraj kako bismo dobili kanonski volumen pogleda za

perspektivnu projekciju.

Page 49: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

1. korak: Translacija T (−VRP)

2. korak: Rotacija R kao i kod paralelne projekcije.3. korak: Translacija T (−PRP), buduci da su koraci 1 i2 pomakli VRC sustav tako da se on sada poklapa skoordinatnim sustavom scene.4. korak: Definiramo smik duž z osi koji transformiravolumen pogleda na slici, tako da postane simetrican.

-

6 ���

XXX�

rrry

−z

z = vrp′z

središteprozora središnja linija

volumena pogleda

VRPVRP

ZZ~

ZZ}

Središnja linija volumena pogleda prolazi kroz PRP, kojije sada u ishodištu, i središte prozora.

Page 50: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

Trebamo definirati smik koji ce vektor CW − PRPtransformirati tako da se poklapa sa z osi.Takav smik je SMpar kao i kod paralelne projekcije.Nakon primjene transformacije smika prozor i volumenpogleda su centrirani u odnosu na z os.Prozor na ravnini projekcije je omeden pravcima

x = − umax−umin2 , x = umax−umin

2 , y = − vmax−vmin2 , y = vmax−vmin

2

VRP je nakon 3. koraka iz ishodišta translatiran za−PRP, a nakon 4. koraka je oblika

VRP ′ = SMpar · T (−PRP) ·

0001

.

Buduci da SMpar ne dira z koordinatu:

vrp′z = −prpz .

Page 51: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

5. korak: Skaliranje na dimenzije kanonskog volumenapogleda.

- -

6 6

����

XXXX

r rrrrr

��

@@

r rry y

−z −zvrp′z + F vrp′z vrp′z + B

VRPVPN

y =vmax−vmin

2

y = − vmax−vmin2

@R

��−1

1

−1zmin zproj

stražnjaravnina zaobrezivanje

�prednja

ravnina zaobrezivanje

HHj

ravninapogledaXXy

y = −z

y = z

?

6

prije skaliranja nakon skaliranja

Skaliranje se izvodi u dva podkoraka.

Page 52: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

1 Neuniformno skaliranje koje ravnine bocnih stranicavolumena pogleda preslikava u ravnine x = ±z iy = ±z:

S(− 2 · vrp′z

umax − umin,− 2 · vrp′z

vmax − vmin, 1)

,

prozor na ravnini pogleda se skalira tako da su mupolovica visine i polovica širine jednake −vrp′z .

2 Uniformno skaliranje (kako bi se sacuvale orijentacijeravnina) koje preslikava stražnju ravninu za obrezivanjez = vrp′z + B u z = −1:

S(− 1

vrp′z + B,− 1

vrp′z + B,− 1

vrp′z + B

).

Konacno skaliranje je oblika

Sper = S(

2vrp′z(umax−umin)(vrp′z+B) ,

2vrp′z(vmax−vmin)(vrp′z+B) ,−

1vrp′z+B

).

Page 53: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

Ravnina projekcije, prednja i stražnja ravnina zaobrezivanje se sada nalaze na pozicijama:

zproj = − vrp′zvrp′z+B , zmin = −vrp′z+F

vrp′z+B , zmax = −vrp′z+Bvrp′z+B = −1.

Konacno dobivamo

Nper = Sper · SMper · T (−PRP) · R · T (−VRP).

Page 54: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

Obrezivanje

Obrezivanje se može vršiti:prema kanonskom volumenu pogleda u 3D — kadaje w > 0 za sve tocke

U tom slucaju se lagano prebacimo iz homogenihkoordinata (u kojima su definirane transformacije)natrag u 3D.To se dogada kada se rotacije, translacije, skaliranja ismikovi primijenjuju na tocke, linije i ravnine, štovišeostaje w = 1.Nper i Npar ne mijenjaju w , pa dijeljenje s w nije nužno.

u homogenim koordinatama — kada se pojavljujew < 0

Za tocke sa w < 0 i z < 0 je z/w > 0, i one bi mogle bitiprikazane iako ne bi trebale.To se dogada ako primitive za crtanje ukljucuju krivulje iplohe koje su reprezentirane funkcijama u homogenimkoordinatama, i prikazuju se kao povezani nizpravcastih segmenata.

Page 55: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

Obrezivanje u 3D

2D Cohen–Sutherlandov algoritam za obrezivanje linija sejednostavno proširuje na 3D — koristi se 6-bitni kod zadefiniranje vanjskih podrucja.

za kanonski volumen paralelne projekcije bit sepostavlja na 1 ako:

1. bit tocka je iznad volumena pogleda y > 12. bit tocka je ispod volumena pogleda y < −13. bit tocka je desno od volumena pogleda x > 14. bit tocka je lijevo od volumena pogleda x < −15. bit tocka je iza volumena pogleda z < −16. bit tocka je ispred volumena pogleda z > 0

Ukoliko se linija ne može trivijalno niti prihvatiti nitiodbiti, moraju se izracunati najviše 6 sjecišta linije saravninama stranica volumena pogleda.

Page 56: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

Za racunanje sjecišta se koristi parametrizirani obliksegmenta pravca od P0(x0, y0, z0) do P1(x1, y1, z1):

x =x0 + t(x1 − x0),

y =y0 + t(y1 − y0),

z =z0 + t(z1 − z0), t ∈ [0, 1].

Npr. za racunanje sjecišta linije sa ravninom y = 1, izdruge jednadžbe jednostavno dobivamo

t =1− y0

y1 − y0,

odakle koordinate sijecišta glase

x = x0 + (1−y0)(x1−x0)y1−y0

, y = −1, z = z0 + (1−y0)(z1−z0)y1−y0

.

Page 57: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

za kanonski volumen perspektivne projekcije bit sepostavlja na 1 ako:

1. bit tocka je iznad volumena pogleda y > −z2. bit tocka je ispod volumena pogleda y < z3. bit tocka je desno od volumena pogleda x > −z4. bit tocka je lijevo od volumena pogleda x < z5. bit tocka je iza volumena pogleda z < −16. bit tocka je ispred volumena pogleda z > zmin

Npr. za racunanje sjecišta linije sa ravninom y = z,izjednacavanjem druge i trece jednadžbe dobivamo

t =z0 − y0

(y1 − y0)− (z1 − z0),

odakle koordinate sijecišta glase

x = x0 + (x1−x0)(z0−y0)(y1−y0)−(z1−z0)

, z = y = y0 + (y1−y0)(z0−y0)(y1−y0)−(z1−z0)

Page 58: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

Obrezivanje u homogenim koordinatama

Razlozi za obrezivanje u homogenim koordinatama:Tocke dobivene korištenjem neuobicajenihtransformacija ili racionalnih parametrickih splajnovamogu imati w < 0.

Takve tocke mogu se pravilno obrezati samo uhomogenim koordinatama, a ne u 3D.

Kanonicki volumen pogleda perspektivne projekcijemože se transformirati u kanonicki volumen pogledaparalelne projekcije.

Može se koristiti samo jedna procedura za obrezivanje,optimizirana za kanonicki volumen pogleda paralelneprojekcije.Bolja efikasnost.

Page 59: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

Transformacija kanonickog volumena pogledaperspektivne projekcije u kanonicki volumen pogledaparalelne projekcije:

M =

1 0 0 00 1 0 00 0 1

1+zmin

−zmin1+zmin

0 0 −1 0

, zmin 6= 1

M ·

xyz1

=

xy

z−zmin1+zmin

−z

(x , y , z) 7−→

(−x

z,−y

z,

zminz − 1

1 + zmin

)

Page 60: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

- -

6 6

��

@@

r rr rr r

rr rr

r

r

ry y

−z −zzmin −1

A

B

D

C

ravninapogleda

XXy

središteprojekcije

-0 −1

A′

B′

D′

C′

ravninapogleda

središteprojekcije u∞

-M

y zA −zmin zminB zmin zminC −1 −1D 1 −1

y zA′ 1 0B′ −1 0C′ −1 −1D′ 1 −1

Page 61: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

Normalizirajuca transformacija za volumen pogledaperspektivne projekcije sada glasi

N ′per = M · Nper = M · Sper · SMper · T (−PRP) · R · T (−VRP).

Sada koristimo Npar i N ′per , i u oba slucaja obrezujemoprema kanonskom volumenu pogleda paralelneprojekcije.U 3D definiran je sa:

−1 ≤ xw≤ 1, −1 ≤ y

w≤ 1, −1 ≤ z

w≤ 0.

Izraženo u homogenim koordinatama:(a) za w > 0

−w ≤ x ≤ w , −w ≤ y ≤ w , −w ≤ z ≤ 0

(b) za w < 0

−w ≥ x ≥ w , −w ≥ y ≥ w , −w ≥ z ≥ 0

Page 62: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

Postoji nekoliko nacina obrezivanja u homogenimkoordinatama

Sve tocke obrezati 2 puta: jednom po (a) i jednom po(b) — neefikasnoPrvo promijeniti predznake koordinata za tocke saw < 0, i obrezati po (a).

efikasno za linije cije obje krajnje tocke imaju w istogpredznaka

Prvo obrezati po (a), onda promijeniti predznakekoordinata svih tocaka i opet obrezati po (a) — obrezati2 puta

obavezno za linije cije krajnje tocke imaju w razlicitihpredznaka

Page 63: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

Matricni oblik projekcija

Specijalni slucajevi projekcija:Pretpostavke za perspektivnu projekciju

središte projekcije je u ishodišturavnina projekcije z = d

Pretpostavke za paralelnu projekcijuprojekcija je ortografskaravnina projekcije je z = 0

Perspektivna projekcija sa ravninom projekcije z = d isredištem u (0, 0, 0)

- -

6 6

������

rrr

����

��

rrrx

y x

z z

P(x, y, z)

Pp(xp, yp, zp)

d d- -� �

ravninaprojekcije

xp

P(x, y, z)

ravninaprojekcije

pogledduž y osi

Page 64: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

Tocku P(x , y , z) projiciramo na ravninu z = d sasredištem projekcije u ishodištu, slika projekcije jePp(xp, yp, zp).Zbog slicnosti trokuta iz prethodne slike dobivamo

xp

d=

xz

,yp

d=

yz

pa jexp =

xzd

, yp =yzd

, z 6= 0

Iz gornjih jednadžbi vidi se da je slika daljih objekatamanja od slike bližih.

Page 65: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

Matricni prikaz takve projekcije je

Mper =

1 0 0 00 1 0 00 0 1 00 0 1

d 0

x ′

y ′

z ′

w ′

= Mper ·P =

1 0 0 00 1 0 00 0 1 00 0 1

d 0

·

xyz1

=

xyzzd

Odavde slijedi

(xp, yp, zp) =

(x ′

w ′,

y ′

w ′,

z ′

w ′

)=

(x

z/d,

yz/d

, d)

.

Page 66: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

Perspektivna projekcija sa ravninom projekcije z = 0 isredištem u (0, 0,−d)

-

6

�����

rrr

-�

x

z

xp

P(x, y, z)

ravninaprojekcijed

Zbog slicnosti trokuta iz prethodne slike dobivamoxp

d=

xz + d

,yp

d=

yz + d

pa jexp =

xzd + 1

, yp =y

zd + 1

, z 6= 0

Page 67: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

Matricni prikaz takve projekcije je

M ′per =

1 0 0 00 1 0 00 0 0 00 0 1

d 1

Ovakav prikaz dozvoljava da udaljenost središta odravnine projekcije teži u∞— paralelna projekcija

Ortografska paralelna projekcija sa ravninom projekcijez = 0

Kod ortografske projekcije je svejedno gdje se nalaziravnina pogleda, zato se zbog jednostavnosti uzima uz = 0.

Page 68: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

Tocka P(x , y , z) preslikat ce se u

xp = x , yp = y , zp = 0.

Matricni prikaz takve projekcije je

Mort =

1 0 0 00 1 0 00 0 0 00 0 0 1

Primjena projekcije nakon 3D obrezivanja premakanonskom volumenu pogleda

Zbog specificnog izgleda kanonskih volumena pogleda,projekcije na ravninu pogleda provodi setransformacijama

Mort u slucaju paralelne projekcijeMper sa d = zproj u slucaju perspektivne projekcije

Page 69: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

Preslikavanje u otvor pogleda

Kanonski volumen pogleda paralelne projekcije jekvadar

−1 ≤ x ≤ 1, −1 ≤ y ≤ 1, −1 ≤ z ≤ 0,

a kanonski volumen pogleda perspektivne projekcijemožemo preslikati u taj kvadar pomocu M.Specificirat cemo 3D otvor pogleda u koji se preslikavasadržaj kanonskog volumena pogleda.3D otvor pogleda je smješten u jedinicnu kocku

0 ≤ x ≤ 1, 0 ≤ y ≤ 1, 0 ≤ z ≤ 1.

Prednja stranica kocke z = 1 preslikat ce se u najvecikvadrat koji stane na zaslon.Pretpostavljamo da se donji lijevi ugao kvadrata nalazina (0, 0).Tocke unutar jedinicne kocke se tada prikazuju nazaslon tako da se odbace njihove z koordinate.

Page 70: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

Primjer

Na zaslonu rezolucije 1024× 800, najveci kvadrat jezadan sa

0 ≤ x ≤ 799, 0 ≤ y ≤ 799.

Tocka jedinicne kocke (0.5, 0.75, 0.46) ce se preslikatina koordinate (400, 599) zaslona.

3D otvor pogleda unutar jedinicne kocke se zadaje kao

xopmin ≤ x ≤ xopmax , yopmin ≤ y ≤ yopmax , zopmin ≤ z ≤ zopmax .

Preslikavanje kvadra−1 ≤ x ≤ 1, −1 ≤ y ≤ 1, −1 ≤ z ≤ 0 u 3D otvorpogleda izvodi se u 3 koraka.

Page 71: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3DpogledaNormalizirajucetransformacije

Paralelna projekcija

Perspektivnaprojekcija

Obrezivanje

Obrezivanje u 3D

Obrezivanje uhomogenimkoordinatama

Matricni oblikprojekcija

Preslikavanje u otvorpogleda

Konacna im-plementacija3D pogleda

1 (−1,−1,−1) ugao kvadra se translatira u ishodište

T (1, 1, 1)

2 Translatirani kvadar se skalira na dimenzije 3D otvorapogleda

S(

xopmax − xopmin

2,yopmax − yopmin

2,zopmax − zopmin

1

)3 Skalirani kvadar se translatira do donjeg lijevog ugla 3D

otvora pogleda

T (xopmin, yopmin, zopmin)

Konacno dobivamo

MVP3DOP=T (xopmin,yopmin,zopmin)·S( xopmax−xopmin

2 ,yopmax−yopmin

2 ,zopmax−zopmin

1

)·T (1,1,1).

Page 72: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Konacna implementacija 3D pogleda

Postoje dvije implementacije cjelokupne transformacijepogleda.

Implementacija za slucaj kad su geometrijske primitivedefinirane u 3D i transformacije primijenjene naprimitive nikada ne daju w < 0.

Algoritam (3D implementacija)1 Proširi 3D koordinate na homogene koordinate.2 Primijeni normalizirajuce transformacije Npar ili Nper .3 Podijeli koordinate sa w kako bismo ponovo dobili 3D

koordinate (za w = 1 dijeljenje nije potrebno).4 Obreži u 3D prema kanonskom volumenu pogleda

paralelne ili perspektivne projekcije.5 Proširi 3D koordinate na homogene koordinate.

Page 73: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Algoritam (3D implementacija — nastavak)6 Primijeni paralelnu projekciju Mort ili perspektivnu

projekciju Mper sa d = zproj .7 Translatiraj i skaliraj u otvor pogleda zadan

koordinatnim sustavom zaslona, koristeci MVP3DOP iliMVP3DOP ·M.

8 Podijeli koordinate sa w i zanemari z koordinate kakobismo dobili 2D koordinate.

Koraci 6 i 7 izvode se jednim matricnim množenjem.

Implementacija za slucaj kadageometrijske primitive su definirane u homogenimkoordinatama i mogu imati w < 0transformacije primijenjene na primitive mogu datiw < 0implementiran je samo jedan algoritam za obrezivanje

Page 74: Stvaranje pogleda u 3D - web.math.pmf.unizg.hrweb.math.pmf.unizg.hr/~nela/rgpredavanja/stvaranje_pogleda_u_3D.pdf · Slika:Izometrijska projekcija kuce.´ Stvaranje pogleda u 3D Nela

Stvaranjepogleda u 3D

Nela Bosner

Transformacija2D scene uotvor pogleda

Pogled u 3D

Projekcije

Definiranjeproizvoljnogpogleda u 3D

Implementacijaplanarnihprojekcija i 3Dpogleda

Konacna im-plementacija3D pogleda

Algoritam (Implementacija u homogenim koordinatama)1 Proširi 3D koordinate na homogene koordinate.2 Primijeni normalizirajuce transformacije Npar ili N ′per .3 Ako je w > 0 za sve tocke tada obreži u homogenim

koordinatama prema volumenu pogleda definiranim sa(a).Ako se pojavljuju i tocke sa w < 0 tada obreži premaoba dva volumena pogleda definiranih sa (a) i (b).

(a) za w > 0−w ≤ x ≤ w , −w ≤ y ≤ w , −w ≤ z ≤ 0

(b) za w < 0−w ≥ x ≥ w , −w ≥ y ≥ w , −w ≥ z ≥ 0

4 Translatiraj i skaliraj u otvor pogleda zadankoordinatnim sustavom zaslona, koristeci MVP3DOP .

5 Podijeli koordinate sa w i zanemari z koordinate kakobismo dobili 2D koordinate.