3D Grafika+képszintézis
P
1
1. Computer Integrated Manufacturing (Bevezetés ea.)
CAD ADATOK CAQ CAPP CAP
CAM CAE
Computer Aided Design Computer Aided Manufacturing Computer Aided Engineering Computer Aided Processing Computer Aided Process Planning Computer Aided Quality Control
CIM=ΣCAxx
2
2. Adattárolási stratégiák (Bevezetés ea.) Raszter
Vektor
True Type Font
3
2.1 Vektoros adattárolás (Adatszerkezetek ea.) (0,20) (40,20)
(0,20)
(40,20) (50,10)
(0,0) Lineáris lista
(0,0)
(40,0)
Sorszám
x-koordináta
(40,0) Sorszám
x-koordináta
y-koordináta
1
0.0
0.0
1
0.0
0.0
2
40.0
0.0
2
40.0
0.0
3
40.0
20.0
3
50.0
10.0
4
0.0
20.0
4
40.0
20.0
5
0.0
0.0
5
0.0
20.0
6
0.0
0.0
Láncolt lista Sorszám
y-koordináta
x-koordináta
y-koordináta
Következő csúcs
Sorszám
x-koordináta
y-koordináta
Következő csúcs
1
0.0
0.0
2
1
0.0
0.0
2
2
40.0
0.0
3
2
40.0
0.0
6
3
40.0
20.0
4
3
40.0
20.0
4
4
0.0
20.0
5
4
0.0
20.0
5
5
0.0
0.0
0 // nincs
5
0.0
0.0
0 // nincs
6
50.0
10.0
3
4
Keresztláncolt lista (Adatszerkezetek ea.)
Pontlista Sorszám
(0,20)
(40,20)
(0,0)
(40,0) Éllista
x-koordináta
y-koordináta
Következő csúcs
Sorszám
kezdőpont
végpont
Következő él
1
0.0
0.0
2
1
1
2
2
2
40.0
0.0
3
2
2
3
3
3
40.0
20.0
4
3
3
4
4
4
0.0
20.0
0 // nincs
4
4
1
0 // nincs
5
Raszteres adattárolás (Adatszerkezetek ea.) 4-es fa 1 0
0 1
1
1 1
0
8-as fa
0 0
0
0
1
1 0
0
1
0
0
0
1
0
6
3. Grafikus tárgymodellek (Bevezetés ea) 3.1 Pont 8
7
5
Sorszám
6 3
1
2
3.2 Él
Sorszám
Sorszám
y-koordináta
z-koordináta
0.0
0.0
0.0
2
2
40.0
0.0
0.0
3
3
40.0
20.0
0.0
4
4
0.0
20.0
0.0
5
5
0.0
0.0
20.0
6
40.0 kezdőpont
végpont 0.0
20.0 Következő él
7
1
7
L1
40.01
220.0
20.0 2
8
2
8
L2
0.02
320.0
20.0 3
0 // nincs
L3
3
4 Felület egyenlete
L4 Határélek
4
4
1 4 Következő felület
5
1
5
F1
L51,2,3,4
1
2 5
6
2
6
F2
L6 9,10,11,12
2
3 6
7
3
Következő csúcs
1
6 Él egyenlete
3
3.3 Felület
x-koordináta
7 Sorszám
L74,5,8,12 Határélek 3 F3 Felület egyenlete
4 7
nx
nx
2n
x
Következő felület
1
F4
L8 8,9,10,11 F1
41,2,3,4 5 8
1,23
12,3 3 123
2
5
9 2
F5
L92,6,7,10 F2
5 6 6 9,10,11,12
4,56
45,6 4 456
3
6
10 3
F6
L10 3,7, 8,11 F3
7 6 0 // nincs 4,5,8,12
7,89
78,9 5 789
4
11 4
L11
F4
7 8,9,10,11
8
9,87
98,7 6 987
5
12 5
L12
F5
8 2,6,7,10
5
6,54
0 // nincs 65,4 654
6
F6
3,7, 8,11
3,21
32,1
8 4 3.4 Boundary REPresentation
6
321
0 // nincs
7
3.5 CSG (Bevezetés ea) Név
X1
Y1
Z1
X2
Y2
Z2
T1
-25
-5
-5
25
5
5
Név
X1
Y1
Z1
X2
Y2
Z2
T2
-3
-25
-3
3
25
3
∪ Név
Jellemzés
C1
T1∪T2
\ Név
X1
Y1
Z1
X2
Y2
Z2
R
H1
0
0
-15
0
0
15
2
Név
Jellemzés
C2
C1\H1
8
3.6 Paraméteres és variációs tervezés adatai Név
Típus
Meghatározó adatok
T1
Tégla
T1_X1,T1_Y1,T1_Z1,T1_X2,T1_Y2,T1_Z2
T2
Tégla
T2_X1,T2_Y1,T2_Z1,T2_X2,T2_Y2,T2_Z2
C1
T1∪T2
H1
henger
C2
C1\H1
H1_X1,H1_Y1,H1_Z1,H1_X2,H1_Y2,H1_Z2,R
T1_X1=-25
T2_X1=-3
H1_X1=0
T1_Y1=-5
T2_Y1=-25
H1_Y1=0
T1_Z1=-5
T2_Z1=-3
H1_Z1=-15
T1_X2=25
T2_X2=3
H1_X2=0
T1_Y2=5
T2_Y2=25
H1_Y2=0
T1_Z2=5
T2_Z2=3
H1_Z2=15 R=2
3.7 Alaksajátosság (feature) = paraméteres elem + technológia
9
4. Tér → sík leképezés ξ = f ξ ( x, y , z )
Térbeli modellek képernyőképe
η = f η ( x, y , z )
η z
4.1 Vetítés párhuzamos vetítősugarakkal, axonometria
γ
ξ = − x ⋅ q x ⋅ cos( α ) + y ⋅ q y ⋅ cos( β ) − z ⋅ qz ⋅ sin( γ )
qz
η = − x ⋅ q x ⋅ sin( α ) + y ⋅ q y ⋅ sin( β ) + z ⋅ qz ⋅ cos( γ ) α
z
q x = 1, q y = 1, q z = 1
α = 30, β = 30, γ = 0 4.1.2 Cavalier axonometria
α = 45 , β = 0 , γ = 0
1
1 η
30 0 y
ξ
z
450 x
3 3 + y⋅ 2 2 1 1 η = − x ⋅ qx ⋅ + y ⋅ qy ⋅ + z 2 2
2 + y 2 2 η = − 0 ,5 ⋅ x ⋅ + z 2
ξ = − 0 ,5 ⋅ x ⋅
1
q x = 0 . 5 , q y = 1, q z = 1
y
ξ = −x⋅
1 30 0 x
qy
x
η
4.1.1 Izometrikus axonometria
qx
ξ
β
0,5
1
y ξ
10
4.2 Centrális vetítés
y
Py P
η Πy
Pk
O C d = OC
z Pxy
Πx
Px ξ
x s
x ξ = z d
ξ=
y η = z d
y∗d η= z
x∗d z
d
d
d 11
5. Window-Viewport transzformáció (ξ,4,η4)
η
(ξ,2,η2)
(ξ,3,η3)
(ξ’,η’)
ξ ' = α ∗ ξ + βξ η ' = α ∗ η + βη
(ξ,η) (ξ,1,η1) ξ
α = min( α∗
ξ 4 − ξ3 η 4 − η3 , ) ξ 2 − ξ 1 η 2 − η1
ξ1 + ξ 2
+ βξ =
ξ3 + ξ4
2 2 η +η4 η +η2 α∗ 1 + βη = 3 2 2
βξ = βη =
ξ3 + ξ4 η3
−α ∗
ξ1 + ξ 2
2 2 +η4 η +η2 −α ∗ 1 2 2
12
6. Megjelenési algoritmusok 6.1 Láthatósági algoritmusok 6.1.1 Depth Sort algoritmus A ∆-kel közelített felület elemei a legtávolabbi pontjuk távolsága szerint sorbarendezve jó a sorrend, ha 1. az a ∆ legtávolabbi pontja közelebb van a síkhoz, mint b∆ legközelebbi pont-ja. 2. A befoglaló téglalapon nem metszik egymást 3. az a ∆ vetített képe nem metszi b∆ vetített képét. 4. a b ∆ mindhárom sarokpontja az a∆ síkja mögött helyezkedik el. Egyébként nem ciklikus csere
Kettévágás 13
6.1.2 Area subdivision 1. A képernyő négy részre osztva
2. Jó a sorrend, ha • Az ablakot egyetlen sokszög foglalja be, • Egyetlen sokszög sincs az ablakban, • Az ablak egyetlen sokszöget metsz, vagy foglal magában • Valamelyik sokszögről tudjuk hogy takar. 3. A negyedeket további négy részre osztva folytatható pixel méretig 14
6.1.3 Z-puffer 1. ∞ a Z-pufferbe 2. A tárgypontokra rendre
Képernyő
Zpuffer igen
Megjelenítés Zp=z
z
nem
15
I0
7. Az árnyalás modellezése 7.1 Színek, színrendszerek L - a fény intenzítása
S
If
n
r α
α
β f P
r = ∫ L( λ )r( λ )dλ
L
g = ∫ L( λ )g( λ )dλ b = ∫ L( λ )b( λ )dλ λ[nm] 436
RedGreenBlue
561
700
CyanMagentaYellow
LuminescenceHueSaturance
16
7.2 Alapfogalmak 7.2.1 A térszög Az egységgömb felületének – a felület méretével számszerűsített – része, mértékegysége a szteradián Θ θ 7.2.2 A látó-térszög dA dθ dω dA ∗ cos Θ
dω = sinθ ⋅ dϕ ⋅ dθ =
r2
7.2.3 Fluxus (Ф)
r
dφ
Egységnyi idő alatt egy felületen átadott energia, mértékegysége watt 7.2.4 Intenzítás (L) Egy felületelemet elhagyó energia a felületelem látható nagyságára és a térszögére vonatkoztatva, mértékegysége watt/m2/sr
L=
dΦ dA cos Θdω 17
7.3. Egyszerű BRDF Kétirányú visszaverődés-eloszlási függvény Bi-directional Reflection Distribution Function N Θ’
L f r ( L ,V ) = in L ⋅ cos θ '
• Diffúz anyagok • Reflexív anyagok • Ideális fénytörés • Spekuláris visszaverődés
L
V
minden irányban egyenletesen – tükör – üveg – csak a visszaverődés környékén –
18
7.4. Anyagmodellek 7.4.1 Diffúz anyagok - Lambert törvény
Lλ = Linλ ⋅ kd ,λ ⋅ cos θ '
N
V Θ
f d ,λ ( L,V ) = kd ,λ
L
Visszaverődési tényező
Θ’
19
7.4.2 Reflexív anyagok - Ideális visszaverődés Fresnel együttható
Lλ = Lλ ⋅ kr ,λ ⋅ δ θ =θ ' in
N
V Θ
f r ,λ ( L ,V ) =
kr ,λ ⋅ δ θ =θ ' cos θ
'
L Θ’
20
7.4.3 Ideális törés Snelius Descartes törvény
Lλ = Lλ ⋅ kr ,λ ⋅ δ θ in
T =θ
f t ,λ ( L ,V ) =
'
N
kt ,λ ⋅ δ θ
T =θ
'
cos θ '
L Θ’
V
ΘT
21
7.4.4 Spekuláris visszaverődés – Phong modell
k s ,λ ⋅ cos n ψ f s ( L ,V ) = cos θ '
Lλ = Lλ ⋅ k s ,λ ⋅ cos ψ in
n
R V
ψ
N Θ
L Θ’
22
7.5. Fényforrások
Pontszerű fényforrás (Point Light)
1 L= k0 + k1 ⋅ r + k2 ⋅ r 2
Irány fényforrás (Direction Light)
L=L(α)
Ambiens fényforrás (Ambient Light)
L=állandó
iránya és intenzitása azonos
Iránytól való eltérés
Szpotlámpa (SpotLight)
1 m L= ⋅ s ⋅ cos α 2 l k0 + k1 ⋅ r + k2 ⋅ r határkúp
Égboltfény (SkyLight)
L=f(α)
lehet irányfüggő, tárgyfüggő
23
7.5 Összetett anyagmodell
LR = LinR ⋅ kd ,R ⋅ cosθ ' + LinR ⋅ ks ,R ⋅ cosnψ + LinR ⋅ kr ,R LG = LinG ⋅ kd ,G ⋅ cosθ ' + LinG ⋅ ks ,G ⋅ cosnψ + LinG ⋅ kr ,G LB = LinB ⋅ kd ,B ⋅ cosθ ' + LinB ⋅ ks ,B ⋅ cosnψ + LinB ⋅ kr ,B 7.6. Egyszerűsített árnyalási egyenlet
L = Le + ka ⋅ La +
∑[k ⋅ cosθ ⋅ L
d l∈ fényforr
' l
in l
]
+ ks ⋅ cosnψ l ⋅ Linl + kr ⋅ Linr + kt ⋅ Lint
7.7 Textúra
24
8. Képfeldolgozás 8.1 Szín-, fényesség-hisztogramm számítás db%
L db%
db%
L
db%
L
25
L
8.2. Konvolúció
q( k , l ) =
- a képpont és környezete világosságának súlyozott összege R
S
∑ ∑ p( r , s ) ⋅g( k − r , l − s )
r =− R s= − S
g - a képpont eredeti világossága q - a képpont új világossága p - a súlyok (az operator), rendszerint páratlan számú sort és oszlopot
26
8.3. Zajcsökkentés Ha egy képpont világosságához zaj adódik, világossága eltér a környezetétől. Zajszűrés - a képpont világossága környezete átlagával helyettesítve.
⎡1 1 1⎤ 1 z1 = ⎢⎢1 1 1⎥⎥ 9 ⎢⎣1 1 1⎥⎦
⎡1 2 1⎤ 1 z2 = ⎢⎢ 2 4 2⎥⎥ 16 ⎢⎣1 2 1 ⎥⎦
⎡1 ⎢1 1 ⎢ ⎢1 z3 = 25 ⎢ ⎢1 ⎢⎣1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1⎤ 1⎥⎥ 1⎥ ⎥ 1⎥ 1⎥⎦
• Az elemek összege 1 • A foltok szétterülnek • Lágyabb lesz a kép
I
I ⊗ z3
27
8.4. Élkiemelés (edge detection) Vízszintes és függőleges irányú változásokat parciális differencia képzésével emelhetjük ki.
⎡0 0 Δg = g ( k , l + 1 ) − g ( k , l − 1 ) ⎢⎢ − 1 0 d ( k ,l ) = Δx ⎢⎣ 0 0 ⎡0 − 1 Δg = g ( k + 1, l ) − g ( k − 1 , l ) ⎢⎢0 0 d ( k ,l ) = Δx ⎢⎣0 1 8.4.1 Élkiemelés gradienssel
0⎤ 1⎥⎥ 0⎥⎦ 0⎤ 0⎥⎥ 0⎥⎦
Roberts operátor átlós éleket keres. Az aktuális cella a bal felsőhöz igazítva
⎡ − 1 0⎤ r1 = ⎢ ⎥ 0 1 ⎣ ⎦ R1 = I ⊗ r1
⎡ 0 1⎤ , r2 = ⎢ ⎥ − 1 0 ⎣ ⎦ , R2 = I ⊗ r2
R1 R2 Szög az átlóhoz képest vékonyabb vonalak (fél pixel eltéréssel). Gr = R12 + R22
, Φ = arctg
28
Prewitt operátor ⎡ − 1 − 1 − 1⎤ p1 = ⎢⎢ 0 0 0 ⎥⎥ ⎢⎣ 1 1 1 ⎥⎦
P1 = I ⊗ p1
,
⎡ − 1 0 1⎤ p2 = ⎢⎢ − 1 0 1⎥⎥ ⎢⎣ − 1 0 1⎥⎦
, P2 = I ⊗ p2
Gr = P12 + P22
, Φ = arctg
P1 P2
Szög az vízszinthez képest vastagabb vonalak. Két ponthármas átlaga Inverz
Sobel operátor ⎡ − 1 − 2 − 1⎤ s1 = ⎢⎢ 0 0 0 ⎥⎥ ⎢⎣ 1 2 1 ⎥⎦
S1 = I ⊗ s1
⎡ − 1 0 1⎤ , s2 = ⎢⎢ − 2 0 2⎥⎥ ⎢⎣ − 1 0 1⎥⎦
, S 2 = I ⊗ s2
S1 S2 Szög az vízszinthez képest vastagabb vonalak. A vizsgált sor duplán számít.
Gr = S12 + S22 Gr ≅ S1 + S2
, Φ = arctg
29
Robinson operátor A Sobel forgatása – 8 irányban gradiens ⎡1 0 − 1 ⎤ ⎡0 − 1 − 2⎤ ⎡ − 1 − 2 − 1⎤ ⎡ − 2 − 1 0⎤ ⎥ , ⎢ − 1 0 1⎥ ⎢ 2 0 − 2⎥ , ⎢ 1 0 − 1 ⎥ , ⎢ 0 0 0 ⎥ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎢ ⎢ ⎥ ⎢ ⎥ ⎢⎣1 0 − 1 ⎥⎦ ⎢⎣ 2 1 0⎦ ⎣1 2 1⎦ ⎣ 0 1 2⎥⎦ 0⎤ 2 1 ⎤ ⎡2 1 1 2⎤ ⎡ 1 ⎡ − 1 0 1⎤ ⎡ 0 ⎢ − 2 0 2⎥ , ⎢ − 1 0 1 ⎥ , ⎢ 0 ⎥ ⎢ ⎥ − 1 0 0 , 0 1 ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢⎣ − 1 0 1 ⎥⎦ ⎢⎣ − 2 − 1 0⎥⎦ ⎢⎣ − 1 − 2 − 1⎥⎦ ⎢⎣0 − 1 − 2⎥⎦
A maximális érték határozza meg az irányt
8.4.2 Laplace operátorok Δd = d ( k ,l − 1 ) − d ( k ,l ) = Δx = g ( k , l ) − g ( k , l − 1 ) − [g ( k , l + 1 ) − g ( k , l )] =
dd ( k , l ) = −
= − g( k , l − 1 ) + 2 ⋅ g( k , l ) − g( k , l + 1 )
[− 1
2 − 1]
Vízszintes
⎡ − 1⎤ , ⎢⎢ 2 ⎥⎥ ⎢⎣ − 1⎥⎦ Függőleges
,
⎡ 0 −1 0 ⎤ ⎢ − 1 4 − 1⎥ ⎢ ⎥ ⎢⎣ 0 − 1 0 ⎥⎦
,
Vízszintes+függőleges
⎡ − 1 − 1 − 1⎤ ⎢ − 1 8 − 1⎥ ⎢ ⎥ ⎢⎣ − 1 − 1 − 1⎥⎦ Átlós is
30
8.5 Sorrendi szűrések, vágás 8.5.1 Rank-, medián szűrés
8.5.2 Vágás adaptív vágás
31
8.6. Élesítés (Shapening)
−k ⎡ 0 S = Id + k ⋅ L4 = ⎢⎢ − k 1 + 4 ⋅ k ⎢⎣ 0 −k = +
0 ⎤ − k ⎥⎥ 0 ⎥⎦
Élesítő tényező (1/4, 1/8, 1/16)
Zajos képeknél (salt and pepper) az élesítés ront
Növelt területű Prewitt operátor – zajcsökkentő élkiemelés ⎡− 1 ⎢− 1 ⎢ ⎢− 1 ⎢ ⎢− 1 ⎢− 1 ⎢ ⎢− 1 ⎢− 1 ⎣
− 1 − 1 0 1 1 1⎤ − 1 − 1 0 1 1 1⎥⎥ − 1 − 1 0 1 1 1⎥ ⎥ − 1 − 1 0 1 1 1⎥ − 1 − 1 0 1 1 1⎥ ⎥ − 1 − 1 0 1 1 1⎥ − 1 − 1 0 1 1 1⎥⎦
⎡ − 1 − 1 − 1 − 1 − 1 − 1 − 1⎤ ⎢ − 1 − 1 − 1 − 1 − 1 − 1 − 1⎥ ⎢ ⎥ ⎢ − 1 − 1 − 1 − 1 − 1 − 1 − 1⎥ ⎢ ⎥ , ⎢0 0 0 0 0 0 0⎥ ⎢1 1 1 1 1 1 1⎥ ⎢ ⎥ 1 1 1 1 1 1⎥ ⎢1 ⎢1 1 1 1 1 1 1 ⎥⎦ ⎣
32