Úvod
Typy promítání
Matematický popis promítání
Promítání Pavel Strachota ˇ FJFI CVUT v Praze
30. bˇrezna 2011
Implementace promítání
Literatura
Úvod
Typy promítání
Matematický popis promítání
Obsah
1
Úvod
2
Typy promítání
3
Matematický popis promítání
4
Implementace promítání
Implementace promítání
Literatura
Úvod
Typy promítání
Matematický popis promítání
Obsah
1
Úvod
2
Typy promítání
3
Matematický popis promítání
4
Implementace promítání
Implementace promítání
Literatura
Úvod
Typy promítání
Matematický popis promítání
Implementace promítání
Úvod promítání (projekce) = zobrazení (transformace) ˇ ˇ trojrozmerných objektu˚ do dvourozmerné plochy ˇ (zobrazovacího zaˇrízení) - prum ˚ etny (projection plane) ztráta prostorové informace ˇ ˇ prum ˚ etna ... vetšinou rovina =⇒ úseˇcka v prostoru 7→ úseˇcka v rovineˇ =⇒ lze promítat jen koncové body a pak spojit lze promítat i na kouli apod. starší CRT nebyly rovinné - zanedbávalo se
ruzné ˚ promítací metody vhodné pro ruzné ˚ úˇcely (deskriptivní geometrie) ˇ nekdy je potˇreba z 2D obrazu vyˇcíst vlastnosti 3D objektu˚ (vzdálenosti, úhly) =⇒ promítání musí napˇr. zachovávat ˇ rovnobežnost apod.
Literatura
Úvod
Typy promítání
Matematický popis promítání
Implementace promítání
Obecné problémy promítání promítací paprsek - vychází z každého bodu 3D scény a ˇ ˇ dopadá na prum ˚ etnu. V místeˇ dopadu vytváˇrí prum ˚ et ˇ paprsku závisí na promítací metodeˇ smer
ˇ prum ˚ etna - nyní uvažujeme jen rovinu, teoreticky neomezenou, ve skuteˇcnosti výˇrez (viewport) pohledový objem - 3D objem obsahující objekty, které se ˇ eˇ pˇri dané metodeˇ promítání zobrazí na omezené prum ˚ etn lze vypoˇcítat pro urychlení zobrazování 3D scény (pˇredem vylouˇcí objekty mimo objem z dalšího zpracování) oˇrezávání (clipping) specifikace zadní a pˇrední oˇrezávací roviny (vylouˇcení vzdálených objektu) ˚
ˇ promítání: rovnobežné a stˇredové (perspektivní)
Literatura
Úvod
Typy promítání
Matematický popis promítání
Obsah
1
Úvod
2
Typy promítání
3
Matematický popis promítání
4
Implementace promítání
Implementace promítání
Literatura
Úvod
Typy promítání
Matematický popis promítání
Implementace promítání
Typy promítání
ˇ ˇ rovnobežné promítání - charakterizováno smerem ˇ promítání (všechny promítací paprsky mají stejný smer) ˇ pravoúhlé - paprsky jsou kolmé na prum ˚ etnu ˇ kosoúhlé - paprsky svírají s prum ˚ etnou jiný úhel než 90◦ ˇ zachovává rovnobežnost =⇒ vhodné pro technické aplikace
ˇ stˇredové promítání - urˇceno stˇredem promítání, do nejž míˇrí promítací paprsky více realistické formalismus: je-li stˇred promítání nekoneˇcneˇ daleko =⇒ ˇ rovnobežné promítání
Literatura
Úvod
Typy promítání
Matematický popis promítání
Implementace promítání
ˇ Stˇredové vs. rovnobežné promítání
Literatura
Úvod
Typy promítání
Matematický popis promítání
Implementace promítání
Literatura
ˇ Typy rovnobežného promítání pravoúhlé (ortografické) - v technických výkresech pudorys ˚ (top-elevation) bokorys (side-elevation) nárys (front-elevation) ˇ ˇ axonometrické promítání - prum ˚ etna není rovnobežná s žádnou ze souˇradnicových os ˇ osoveˇ orientovaného kvádru =⇒ zobrazí více sten ˇ izometrické - normála prum ˚ etny svírá stejný úhel se všemi souˇr. osami
ˇ kavalírní promítání - promítací paprsky svírají s prum ˚ etnou ◦ úhel 45 kabinetní promítání - promítací paprsky svírají s ˇ prum ˚ etnou úhel arctan 2
Úvod
Typy promítání
Matematický popis promítání
Implementace promítání
Ortografické promítání
Literatura
Úvod
Typy promítání
Matematický popis promítání
Implementace promítání
Izometrické promítání
Q?bert, 1982
Literatura
Úvod
Typy promítání
Matematický popis promítání
Implementace promítání
Kavalírní promítání ˇ promítací paprsky svírají s prum ˚ etnou úhel 45◦ =⇒ ˇ pˇrímky kolmé na prum ˚ etnu (xy ) zachovávají délku ˇ osy z a x se volí typicky bud’ 30◦ úhel pˇrímek ve smeru ◦ nebo 45
Literatura
Úvod
Typy promítání
Matematický popis promítání
Implementace promítání
Literatura
Kabinetní promítání ˇ promítací paprsky svírají s prum ˚ etnou úhel ˇ arctan 2 ≈ 63.4◦ =⇒ pˇrímky kolmé na prum ˚ etnu (xy ) mají ˇ délku polovicní ˇ osy z a x se volí typicky bud’ 30◦ úhel pˇrímek ve smeru ◦ nebo 45
Úvod
Typy promítání
Matematický popis promítání
Implementace promítání
Literatura
Stˇredové (perspektivní) promítání ˇ Obecneˇ muže ˚ mít prum ˚ etna libovolnou polohu. Rozlišují se však pˇrípady: ˇ ˇ jednobodová (jednoúbežníková) perspektiva - prum ˚ etna protíná jedinou souˇradnicovou osu. Všechny úseˇcky kolmé ˇ ˇ na prum ˚ etnu míˇrí do jednoho bodu ... hlavní úbežník (principal vanishing point) ˇ ˇ dvoubodová (dvouúbežníková) perspektiva - prum ˚ etna protíná dveˇ souˇrad. osy. Hrany osoveˇ orientovaného ˇ rují do dvou hlavních úbežník ˇ kvádru smeˇ u. ˚ ˇ ˇ trojbodová (trojúbežníková) perspektiva - nejobecnejší ˇ pˇrípad, prum ˚ etna protíná všechny tˇri souˇrad. osy. Hrany ˇ rují do tˇrí hlavních úbežník ˇ os. orient. kvádru smeˇ u˚
Úvod
Typy promítání
Matematický popis promítání
Typy perspektiv
Implementace promítání
Literatura
Úvod
Typy promítání
Matematický popis promítání
Typy perspektiv
Implementace promítání
Literatura
Úvod
Typy promítání
Matematický popis promítání
Typy perspektiv
Implementace promítání
Literatura
Úvod
Typy promítání
Matematický popis promítání
Typy perspektiv
Implementace promítání
Literatura
Úvod
Typy promítání
Matematický popis promítání
Obsah
1
Úvod
2
Typy promítání
3
Matematický popis promítání
4
Implementace promítání
Implementace promítání
Literatura
Úvod
Typy promítání
Matematický popis promítání
Implementace promítání
Literatura
Promítání jako transformace souˇradnicové systémy WCS (world coordinate system) ˇ VCS (viewing coordinate system), nekdy také VRC (viewing reference coordinate)
promítání bude transformace mezi WCS a VCS homogenní souˇradnice =⇒ zápis v maticovém tvaru P p = MP, kde P = [X , Y , Z , W ]T ∈ WCS a P p = [U, V , N, Wp ]T ∈ VCS =⇒ výhoda - projekci M lze skládat s transformacemi pouhým násobením Poznámka: (x, y , z) 7→ [xW , yW , zW , W ] := [X , Y , Z , W ].
Úvod
Typy promítání
Matematický popis promítání
Implementace promítání
Specifikace pohledu kamery 1/2 ˇ pozice prum ˚ etny V ... tzv. VRP (view reference point) poˇcátek VCS ˇ orientace prum ˚ etny - vektor n, tzv. VPN (view-plane normal) ˇ osy v „view up“ vektor (VUP) v urˇcující smer ˇ osy u vektor u = n × v urˇcuje smer CW (stˇred okna) - obecneˇ ruzný ˚ od V PRP (projection reference point) v pˇrípadeˇ stˇredového promítání je PRP stˇredem promítání (COP, center of projection) ˇ v pˇrípadeˇ rovnobežného promítání vektor ˇ promítání (direction of DOP = PRP − CW urˇcuje smer projection)
Literatura
Úvod
Typy promítání
Matematický popis promítání
Implementace promítání
Specifikace pohledu kamery 2/2
ˇ prum ˇ Umístení ˚ etny
Literatura
Úvod
Typy promítání
Matematický popis promítání
Implementace promítání
Specifikace pohledu kamery 2/2
ˇ Rovnobežné promítání
Literatura
Úvod
Typy promítání
Matematický popis promítání
Implementace promítání
Specifikace pohledu kamery 2/2
Stˇredové promítání
Literatura
Úvod
Typy promítání
Matematický popis promítání
Implementace promítání
Oˇrezávání
ˇ Rovnobežné promítání
Literatura
Úvod
Typy promítání
Matematický popis promítání
Oˇrezávání
Stˇredové promítání
Implementace promítání
Literatura
Úvod
Typy promítání
Matematický popis promítání
Oˇrezávání
Stˇredové promítání
Implementace promítání
Literatura
Úvod
Typy promítání
Matematický popis promítání
Implementace promítání
Transformace pro stˇredové promítání 1/3
ˇ pro jednoduchost: prum ˚ etna ˇ umístena v rovineˇ xy , ve vzdálenosti ˇ z, tj. z = d d od poˇcátku ve smeru stˇred promítání je 0 z podobnosti trojúhelníku˚ máme xp d yp d
= =
x , z y . z
Literatura
Úvod
Typy promítání
Matematický popis promítání
Implementace promítání
Literatura
Transformace pro stˇredové promítání 2/3 Maticový zápis
matice transformace
1 0 M = 0 0
0 0 0 1 0 0 0 1 0 0 d1 0
potom totiž pro P = [x, y , z, 1] (tzv. homogenizovaný bod, kde první 3 složky jsou pˇrímo kartézské souˇradnice) máme T P p = U V N Wp = MP = x y z dz a po pˇrevodu do 3D dostáváme U V N xd yd (xp , yp , zp ) = (u, v , n) = , , = , ,d , Wp Wp Wp z z ˇ v souladu s pomery xp x yp y = ; = . d z d z
Úvod
Typy promítání
Matematický popis promítání
Implementace promítání
Transformace pro stˇredové promítání 3/3 Alternativní formulace
ˇ ˇ prum ˚ etna umístena v rovineˇ xy , prochází poˇcátkem stˇred promítání je (0, 0, −d) z podobnosti trojúhelníku˚ nyní xp yp x y = , = , d z +d d z +d takže y x , yp = z/d + 1 z/d + 1 1 0 0 0 0 1 0 0 =⇒ M = 0 0 0 0 0 0 d1 1
xp =
Literatura
Úvod
Typy promítání
Matematický popis promítání
Implementace promítání
ˇ Transformace pro rovnobežné promítání
ˇ pravoúhlá (ortografická) projekce na prum ˚ etnu danou rovnicí z = 0. P = [x, y , z, 1] 7→ P 0 = [x, y , 0, 1]
1 0 M = 0 0 podobneˇ další transformace
0 1 0 0
0 0 0 0
0 0 0 1
Literatura
Úvod
Typy promítání
Matematický popis promítání
Obsah
1
Úvod
2
Typy promítání
3
Matematický popis promítání
4
Implementace promítání
Implementace promítání
Literatura
Úvod
Typy promítání
Matematický popis promítání
Implementace promítání
Literatura
Implementace promítání a oˇrezávání 1/2 ˇ obecneˇ pohledový objem - konvexní šestisten, ˇ nesoumerný oˇrezávání (napˇr. pˇrímek) snazší vuˇ ˚ ci jednoduchému tvaru tzv. kanonickému objemu =⇒ postup pˇri zobrazování je následující
Úvod
Typy promítání
Matematický popis promítání
Implementace promítání
Implementace promítání a oˇrezávání 2/2 Kanonické objemy
ˇ pro rovnobežné promítání polovina jednotkové krychle ohraniˇcená rovinami: x = −1, x = 1, y = −1, y = 1, z = −1, z = 0 pro stˇredové promítání komolý jehlan x = −z, x = z, y = −z, y = z, z = −zmin , z = −1
Literatura
Úvod
Typy promítání
Matematický popis promítání
Implementace promítání
Zachování informace o hloubce 1/4 popsané transformace zahazují puvodní ˚ informaci o ˇ hloubce (vzdálenosti od prum ˚ etny, tj. zde souˇradnici z) ˇ nahrazují ji souˇradnicí z prum ˚ etny hloubka je potˇreba pro ˇrešení viditelnosti souˇradnici n bodu P p je tˇreba spoˇcítat jinak yd místo P p = xd z , z , d , ale ˇ kˇrivky ve VCS potom úseˇcky ve WCS 7→ (obecne) lze n = z, tj. P p =
xd yd z , z ,z
ˇ tj. souˇradnice (u, v ) = (xp , yp ) jsou OK, tj. v prum ˚ et, ˇ eˇ vidíme úseˇcku, ale: prum ˚ etn problém pˇri rˇešení viditelnosti - potˇrebujeme všechny 3 souˇradnice
Literatura
Úvod
Typy promítání
Matematický popis promítání
Implementace promítání
Literatura
Zachování informace o hloubce 2/4 ˇ Rešení
správnou informaci o hloubce + zachování linearity úseˇcek zajišt’uje transformace PD (pseudo-distance) definovaná jako B PD (z) = A − , z kde B > 0. pˇrední (near) a zadní (far) oˇrezávací rovina z = n, z = f . chceme PD(n) = −1, PD(f ) = 1 =⇒ A=
f +n 2fn , B= f −n f −n
=⇒ PD (z) =
z (f + n) − 2fn . z (f − n)
Úvod
Typy promítání
Matematický popis promítání
Implementace promítání
Zachování informace o hloubce 3/4 Vlastnosti PD
Literatura
Úvod
Typy promítání
Matematický popis promítání
Implementace promítání
Zachování informace o hloubce 4/4 Numerické vlastnosti PD
graf PD(z): n = 2, f = 10 zobrazení intervalu: ˚ i h 7→ [−1, 0] n, f2fn h +ni 2fn f +n , f 7→ [0, 1]
velikosti int. pro f n: 2fn f +n
f−
− n ≈ 2n − n = n 2fn f +n ≈ f − 2n n
=⇒ „komprese“ velkého rozsahu z do intervalu [0, 1] =⇒ možný problém s koneˇcnou pˇresností poˇcítaˇce (z-buffer v graf. kartách obvykle 32-bit integer)
Literatura
Úvod
Typy promítání
Matematický popis promítání
Implementace promítání
Literatura
S. R. Buss: 3D Computer Graphics: A Mathematical Introduction with OpenGL. Cambridge University Press, 2003. J. D. Foley, A. van Dam, S. K. Feiner, J. F. Hughes: Computer Graphics: Principles and Practice, Addison Wesley, 1997. Žára, Beneš, Sochor, Felkel: Moderní poˇcítaˇcová grafika. Computer Press, 2005
Literatura