Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
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
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
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.
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.
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
- - - -
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’.
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
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
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.
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.
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.
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.
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.
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.
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
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)
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.
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.
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.
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.
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.
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.
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).
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).
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).
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
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.
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.
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).
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
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.
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.
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.
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
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.
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.
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.
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.
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
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
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.
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‖
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.
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
.
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
,
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 .
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).
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.
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.
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 .
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.
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
).
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).
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.
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.
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
.
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)
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.
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
)
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
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
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
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
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.
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)
.
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
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.
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
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.
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.
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).
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.
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
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.