Úvod do geometrického modelování v PG poznámky ke 3. přednášce volitelného předmětu PG na FCHI VŠCHT
Martina Mudrová březen 2005
Osnova přednášky I.
Základní pojmy modelování – typy modelů, postupy
II.
Základní pojmy geometrického modelování – souřadnicové systémy
III.
Geometrické transformace
IV. Modelování křivek v PG - analyticky daných, interpolačních a aproximačních - ve 2D a 3D V. Modelování ploch v PG – základní problémy VI. Algoritmy zvyšující názornost zobrazení
2
I. Způsoby modelování v PG Co se rozumí modelováním v PG? = grafické znázornění dvourozměrných nebo třírozměrných objektů modelování 2D (prostor x,y) 3D (prostor x,y,z) 2,5D (šablonování, sweeping) - translační - rotační
}
3D tělesa vznikají pouze posouváním nebo otáčením 2D útvarů
modelování geometrické - drátové modely, plošné modely objemové množinové , CGS (Constructive Solid Geometry) oktalové stromy metody pořízení 3D počítačového modelu: 3D skenery interaktivní modelování simulace (procedurální modelování) 3
Postupy geometrického modelování
z
Jak vzniká 3D geometrický model?
2.
výpočet drátového modelu a jeho pozice (otočení, posunutí, zkosení,...) pro zobrazení - průmět ze 3D do 2D výpočet plošného modelu – a. odstranění neviditelných hran a ploch b. přiřazení barev plochám při použití vhodného osvětlovacího postupu nebo textury, přiřazení průhlednosti,... c. průmět ze 3D do 2D
x y
z
1.
x y
4
II. Souřadnicové systémy používané v PG Uživatelský s.s (WC – Word Coordinates) - systém, ve kterém pracuje uživatel - jednotky: m, km, mm,.... Normalizovaný s.s. (NC – Normalized Coordinates) - mezistupeň - pracuje v <0,1> S.s. zařízení (DC – Device Coordinates) - dán možnostmi zobrazovacího zařízení (rozlišení monitoru,...) - jednotky: tiskařské body, pixely, ... -Kartézské s.s.
→
→
→
e1⊥ e2 , e1 = e2 =1
- Afinní souřadnicové systémy → →
e1 , e2
→
jsou pouze LN
e2 e1
e2 e1
5
Afinní souřadnicové systémy afinní souřadnice: bázové vektory jsou pouze LN Transformace afinních souřadnic:
[ [
]
Kde: počátek P = Px , Py , Pz r bázové vektory ei = ei , x , ei , y , ei , z
[
libovolný bod X = [x, y, z ] = x , y , z '
]
' '
r r r X = P + x.e1 + y.e2 + z.e3 r' r' r' = P ' + x ' .e1 + y ' .e2 + z ' .e3
y y' e2
P
e'2
r' r r r e1 = a11e1 + a12 e2 + a13e3 r' r r r e2 = a21e1 + a22 e2 + a23e3 r' r r r e3 = a31e1 + a32 e2 + a33e3
⎡ a11 r' r ' r ' r r r ⎢ e1 , e2 , e3 = [e1 , e2 , e3 ]⎢a21 ⎢⎣a31
[
E ' = EA
'
z = a31 x ' + a32 y ' + a33 z ' + Pz
[
'
'
a32
A...matice přechodu
y = a21 x ' + a22 y ' + a23 z ' + Py
x'
a13 ⎤ a23 ⎥⎥ a33 ⎥⎦
a12 a22
]
x = a11 x ' + a12 y ' + a13 z ' + Px
X e'1
r' r r ( P ' , e1 , e ' 2 , e '3 )
vyjádření čárkovaného systému pomocí nečárkovaného = rovnice přechodu od nečárk.s. k čárk.s.:
] '
r r r ( P, e1 , e2 , e3 )
'
'
'
]
kde P ' = Px , Py , Pz jsou souřadnice počátku čárk.systému. v nečárk.s.
P' e1
X = X ' A + P'
x
⎡ a11 [x, y, z ] = x ' , y ' , z ' ⎢⎢a21 ⎢⎣a31
[
]
a12 a22 a32
a13 ⎤ ' ' ' a23 ⎥⎥ + Px , Py , Pz a33 ⎥⎦
[
]
6
Homogenní souřadnice • kartézské souřadnice: bázové vektory jsou ortonormální, tj. jsou • lineárně nezávislé • po dvou na sebe kolmé • o velikosti 1 • platí v nich: A-1=AT
• homogenní souřadnice:
[X,Y,Z,w]
[x, y, z] ⇒ [ X ,Y , Z , w ]
x =
kde w…váha bodu (w=1) X Y Z , y = , z = w w w
výhoda: přechod od jedné soustavy ke druhé za použití pouze matice přechodu typu (4,4) ve 3D, popř. (3,3) ve 2D
⎡ a11 ⎢a 12 kde matice přechodu AH = ⎢ ⎢a13 ⎢ ' ⎢⎣ Px
X = X ' AH
• ! neplatí zde: A-1H=ATH
a21 a22
a31 a32
a23 ' Py
a33 ' Pz
0⎤ 0⎥⎥ 0⎥ ⎥ 1⎥⎦
7
III. Geometrické transformace
• posunutí (translace) • rotace • souměrnost • změna měřítka • zkosení • promítání
• každá transformace je charakterizována svojí maticí přechodu • složitější operace jsou realizovány skládáním základních => násobení matic přechodu – záleží na pořadí násobení
8
Posunutí - translace
x' = x + x0' y ' = y + y 0'
• nejjednodušší geom. transformace • [x,y]…souřadnice bodu
y' [x',y']
Matice přechodu ve 3D:
y [x,y]
x'
[x0',y0'] [x0,y0]
x
⎡1 ⎢0 ⎢ ⎢0 ⎢ ' ⎣ x0
0
0
1 0 ' y0
0 1 ' z0
0⎤ 0⎥⎥ 0⎥ ⎥ 1⎦ 9
Otočení okolo počátku – 2D (osy ve 3D) Matice přechodu ve 2D:
y y'
x'
[x0,y0]
x
⎡ cos(α ) sin(α ) 0⎤ ⎢− sin(α ) cos(α ) 0⎥ ⎥ ⎢ ⎢⎣ 0 0 1⎥⎦
Otočení okolo bodu [X,Y] : - složení posunutí a rotace okolo počátku => násobení maticemi přechodu V případě rastrového obrazu: Pixel se nemapuje přesně na pozici jiného pixelu => nutno použít 2D interpolační metody
10
Souměrnost (zrcadlení) ve 2D středová ... rotace o 180°
osová ... podle osy x nebo y
y [x,y]
y [x',y']
[x0,y0]
[x,y]
x
[x0,y0]
x
Matice přechodu ve 2D:
[x',y']
podle středu
podle osy x
podle osy y
⎡ − 1 0 0⎤ ⎢ 0 − 1 0⎥ ⎥ ⎢ ⎢⎣ 0 0 1⎥⎦
⎡ − 1 0 0⎤ ⎢ 0 1 0⎥ ⎥ ⎢ ⎢⎣ 0 0 1⎥⎦
⎡1 0 0⎤ ⎢0 − 1 0 ⎥ ⎥ ⎢ ⎢⎣0 0 1⎥⎦
11
Změna měřítka (scale, zoom) (1)
y y'
sx… koeficient měřítkování ve sm. osy x sy… koeficient měřítkování ve směru osy y
0.5 [x,y]
0<|s|<1 … zmenšení |s|>1 … prodloužení s<0 … opačný směr
[x',y'] 1.5 [x0,y0]
⎡sx ⎢0 ⎢ ⎢⎣ 0
0 sy 0
0⎤ 0⎥⎥ 1⎥⎦
x x'
x' = x.s x y ' = y.s y
Matice přechodu ve 2D:
V případě rastrového obrazu: - změna měřítka mění velikost obrazu = převzorkování - použití 2D interpolačních metod - důsledky ve vlastnostech obrazu 12
Změna měřítka (2) - rastrový obraz = převzorkování - změna měřítka mění velikost obrazu, popř. rozlišení - použití 2D interpolačních metod - důsledky ve vlastnostech obrazu
y y'
[x0,y0]
x x' 13
Promítání = zobrazení ze 3D do 2D (průmětna) • rovnoběžné – všechny paprsky jsou rovnoběžné - podle polohy směru promítání k průmětně: a) pravoúhlé – nárys, půdorys, bokorys, pravoúhlá axonometrie b) kosoúhlé • středové – paprsky vycházejí z jednoho bodu – vhodné pro větší objekty lineární perspektiva
14
Rovnoběžné promítání a) Kosoúhlé Matice přechodu pro rovnoběžné promítání do roviny xy ve směru s=[qx, qy, -1 ]
⎡1 ⎢0 ⎢ ⎢q x ⎢ ⎣0
0 1 qy 0
0 0⎤ 0 0⎥⎥ 0 0⎥ ⎥ 0 1⎦
- Pro qx= qy = 0 : pravoúhlé p. - Alespoň 1 q<>0 : kosoúhlé p. - Pro q x = q y = −
2 2
: kavalírní perspektiva = technická axonometrie
b) Pravoúhlé
15
IV. Geometrické modelování křivek v PG z(1)
• křivky dané analytickým popisem – parametrický tvar • interpolační křivky • aproximační křivky • (jiné metody modelování: procedurální modelování-fraktály,...)
z Q(t) t=1
z(0) t=0
• interaktivně vytvářené křivky – spolupráce s uživatelem
y(0)
x(0)
x(1) x
y(1)
časté požadavky: • invariance k afinním transformacím y • lokalita změn (=> nejčastěji po částech polynomiální) • konvexní obálka - body řídicího polygonu uvnitř -vně • krajní body jsou-nejsou součástí křivky Interpolace a aproximace: x A p r o x im a c e
Ř íd íc í b o d y
I n t e r p o la c e
16
Prostředky pro zvýšení názornosti zobrazení - perspektivní promítání - středové promítání - nejpřirozenější způsob zobrazení - afinní transformace v homogenních souřadnicích - zobrazení odraženého světla (stínování) Phongův osvětlovací model – charakteristiky povrchů textury - odstranění zakrytých částí objektů - algoritmus Z-buffer - malířův algoritmus
17