Download SZTE TTIK Nyúl László - Grafika vizsgajegyzet PDF

TitleSZTE TTIK Nyúl László - Grafika vizsgajegyzet
File Size1.2 MB
Total Pages42
Document Text Contents
Page 1

Gra�ka vizsgajegyzet

Muráncsik Sebestyén

2011. december 30.

1

Page 2

TARTALOMJEGYZÉK TARTALOMJEGYZÉK

Tartalomjegyzék

I Tételek 5

1. A megvilágítás modelljei 6
1.1. Világítás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.1.1. Világító tárgyak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.2. Környezeti (szórt, ambient) fény . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.3. Di�úz visszaver®dés (Lambert-féle visszaver®dés) . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.4. Környezeti fény és di�úz visszaver®dés együtt . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.5. Tükröz®d® visszaver®dés, Phong-modell . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.2. Poligonokból álló felületek fényességének meghatározása . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.1. Konstans fényesség . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.2. Interpolált fényesség . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.3. Poligonhálózat fényessége . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.4. Mach-hatás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.5. Gouraud-féle fényesség . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.6. Phong-féle fényesség . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2. Geometriai transzformációk 8
2.1. 2D Homogén koordináták . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2. 2D forgatás, eltolás, skálázás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3. A�n transzformációk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4. 3D Homogén koordináták . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.5. 3D forgatás, eltolás, skálázás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.6. OpenGL transzformációk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.7. glScalef, glTranslatef, glRotatef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.8. Mátrixm¶veletek: glMatrixMode, glLoadMatrix, glPopMatrix, glMultMatrix . . . . . . . . . . . 8

3. Egyenes, kör, ellipszis rajzolása 9
3.1. Egyenes rajzolása . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2. Kör rajzolása . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.3. Ellipszis rajzolása . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4. Látható vonalak és a felszín meghatározása 11
4.1. Látható vonalak meghatározására szolgáló algoritmusok . . . . . . . . . . . . . . . . . . . . . . . 11

4.1.1. Robert-féle algoritmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.1.2. Apple-féle algoritmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.1.3. Megszakított vonalak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.2. Látható felszín meghatározására szolgáló algoritmusok . . . . . . . . . . . . . . . . . . . . . . . . 11
4.2.1. Pontok láthatósága . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.2.2. Mélységbeli összehasonlítás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.2.3. Kanonikus térfogatba transzformáló mátrix . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2.4. Határoló téglalap-teszt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2.5. Min-Max teszt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2.6. Hátrafelé néz® lapok kiválogatása . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2.7. Hierarchikus struktúrák . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2.8. Z-Pu�er . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2.9. Lista-prioritás algoritmusok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2.10. Mélység szerint rendez® algoritmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2.11. Fedési hurkok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2.12. Bináris tér-particionáló fa algoritmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2.13. Élek táblázata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

5. Vetítések 14
5.1. Perspektivikus vetítés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.2. Párhuzamos vetítés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

5.2.1. Ortogra�kus vetítés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.2.2. Tetsz®leges irányú vetítés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

5.3. 3D megjelenítés speci�kálása . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.4. Matematikai leírások . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Muráncsik Sebestyén, www.dekormelo.hu 2

Page 21

8 GEOMETRIAI TRANSZFORMÁCIÓK

8. Geometriai transzformációk

8.1. 2D

8.1.1. Eltolás

T =


1 0 dx1 + dx20 1 dy1 + dy2

0 0 1




8.1.2. Nagyítás/kicsinyítés

S =


sx2sx1 0 00 sy2sy1 0

0 0 1




8.1.3. Forgatás

R =


cosξ −sinξ 0sinξ cosξ 0

0 0 1




8.1.4. Nyírás

SHx =


1 a 00 1 0

0 0 1




SHy =


1 0 0b 1 0

0 0 1




8.2. 3D

8.2.1. Eltolás

T =




1 0 0 dx
0 1 0 dy
0 0 1 dz
0 0 0 1




8.2.2. Nagyítás/kicsinyítés

S =



sx 0 0 0
0 sy 0 0
0 0 sz 0
0 0 0 1




8.2.3. Forgatás x tengely körül

Rx(ξ) =




1 0 0 0
0 cosξ −sinξ 0
0 sinξ cosξ 0
0 0 0 1




Muráncsik Sebestyén, www.dekormelo.hu 21

Page 22

8.3 Nyírás z mentén 8 GEOMETRIAI TRANSZFORMÁCIÓK

8.2.4. Forgatás y tengely körül

Ry(ξ) =



cosξ 0 sinξ 0

0 1 0 0
−sinξ 0 cosξ 0

0 0 0 1




8.2.5. Forgatás z tengely körül

Rz(ξ) =



cosξ −sinξ 0 0
sinξ cosξ 0 0

0 0 1 0
0 0 0 1




8.3. Nyírás z mentén

SHxy(shx, shy) =




1 0 shx 0
0 1 shy 0
0 0 1 0
0 0 0 1




Muráncsik Sebestyén, www.dekormelo.hu 22

Page 41

12.5 Begin/End objektumok 12 GLUT FÜGGVÉNYEK

TRIANGLE_STRIP (háromszög sorozat). Háromszögek sorozata közös oldalakkal. Ebben az esetben
az elsõ három vertex speci�kálja az elsõ háromszöget, minden további vertex egy további háromszöget speci�kál
úgy, hogy a másik két vertex az elõzõ háromszögbõl származik. Ezt a mûveletet a Gl úgy végzi, hogy mindig
eltárol két vertexet, az A és B vertexet, és egy bit mutatót, amely jelzi, hogy melyik eltárolt vertex helyettesítõdik
az új vertexszel. A glBegin(TRIANGLE_STRIP) hívás után a mutató az A vertexre mutat, minden további vertex
átkapcsolja a mutatót, így az elsõ vertex A vertexként, a második vertex B vertexként, a harmadik A vertexként,
... van tárolva. Minden vertex, a harmadiktól kezdve, egy háromszöget speci�kál az A és B vertexszel.

TRIANGLE_FAN (háromszög legyezõ). Majdnem ugyanaz, mint a háromszög sorozat, azzal a kivétellel,
hogy a két vertex közül az A vertex mindig az elsõként speci�kált vertex, az összes többi pedig helyettesíti a B
vertexet.

TRIANGLES (független háromszögek). Minden i-re, a 3i+1-ik, 3i+2-ik illetve 3i+3-ik vertex határoz
meg egy háromszöget, ahol i = 0,1,2,...

Muráncsik Sebestyén, www.dekormelo.hu 41

Page 42

12.6 Szövegkiírás 12 GLUT FÜGGVÉNYEK

QUAD_STRIP (négyszög sorozat). Párhuzamos oldalakkal rendelkezõ téglalapokat hoz létre. Ha a spe-
ci�kált vertexek: v1, v2, ..., vm, ahol vj a j-dikként speci�kált vertex, akkor az i-dik négyszög vertexei(sorban)
v2i, v2i+1, v2i+2, v2i+3, ahol i = 0,1,..., [m/2]

QUADS (független négyszögek). Minden négy vertexbõl álló csoport egy független négyszöget speci�kál.
A 4j+1-ik, 4j+2-ik, 4j+3-ik és 4j+4-ik vertex speci�kál egy négyszöget, minden j = 0, 1, 2, ...-re.

12.6. Szövegkiírás

12.6.1. void glutStrokeCharacter(void *font, int character);

Megadott bet¶típussal kirajzolja 3 dimenzióban az adott karaktert.

12.6.2. void glutBitmapCharacter ( void *font , int character );

Megadott bet¶típussal kirajzolja a bet¶t 2 dimenzióban.

Muráncsik Sebestyén, www.dekormelo.hu 42

Similer Documents