Babeş-Bolyai Tudományegyetem, Kolozsvár
Matematika és Informatika Kar
Képzési szint: licensz
Doménium: informatika
Szak: Informatika 
Előadás nyelve: magyar

SYLLABUS

I. Általános adatok
Kód	 Tantárgy neve	
MII0002	 Számítógépes grafika	

Félév	Órák: E+Sz+L	Kategória	Típus	
6	2+0+1	szaktárgy	opcionális	

II. Főállásban az  Egyetem  oktatói
Név	Tudományos	Oktatói	Tanszék	Tevékenység	
	fokozat	Státus		E	Sz	L	
RÓTH Ágoston	dr.	egyetemi tanársegéd	Alkalmazott Matematika	*		*	

III. A tantárgy célkitűzései
•	parametrikus görbék és felületek differenciálgeometriája;
•	interpolációs illetve approximációs módszerek görbék és felületek előállítására;
•	parametrikus, interpolációs illetve approximációs görbék és felületek interaktív és objektum orientált programozása;
•	bevezetés az OpenGL (Open Graphic Library), a GLUT (Utility Toolkit) és GLUI (User Interface) platform független grafikus könyvtárak használatába;
•	a GLSL (OpenGL Shading Language) nyelv bemutatása; az OpenGL rögzített funkcionalitásának emulálása illetve különböző effektusok (bucka leképzés, környezet leképzés, árnyékok, árnyéktestek, vízmozgás, részecskék, stb.) létrehozása vertex- és fragment-shaderekkel (árnyalókkal).

IV. A tantárgy tartalma

Előadások tematikája
1. Fejezet. Transzformációk. Vetítések. Láthatósági, takarási feladatok
1.1. Homogén koordináták
1.2. Koordináta- és ponttranszformációk
1.2.1. Koordináta- és ponttranszformációk síkon
1.2.2. Koordináta- és ponttranszformációk a térben
1.3. Vetítések
1.3.1. Párhuzamos vetítés 
1.3.1.1. Merőleges vetítés
1.3.2. Centrális/perspektivikus vetítés
1.4. Láthatósági, takarási problémák

2. Fejezet. Differenciálgeometriai és numerikus analízisbeli alapok 
2.1. Analitikus geometriai elemek: skaláris illetve vektoriális szorzat, egyenes egyenletei, sík egyenletei, pont távolsága egyenestől illetve síktól, stb.
2.2. Görbék és felületek differenciálgeometriai alapjai
2.2.1. Parametrikus görbék
2.2.1.1. Parametrikus görbék ábrázolása 
2.2.2. Parametrikus felületek
2.2.2.1. Parametrikus felületek megjelenítése
2.2.2.1.1. Négyszögű háló
2.2.2.1.2. Háromszögű háló
2.2.2.1.3. Szintvonalak. Esésvonalak
2.2.3. Geometriai folytonosság
2.2.4. Felületi görbék és görbület
2.2.5. Sajátságos felületek (vonal-, forgás-, domborzatjellegű felületek)
2.2.6. Szabályos testek. Csillagszerű poliéderek

2.3. Görbe- és felületinterpoláció
2.3.1. Görbeinterpoláció általában
2.3.1.1. Görbeinterpoláció monomokkal
2.3.1.2. Görbeinterpoláció Lagrange-polinomokkal 
2.3.1.3. Görbeinterpoláció Newton-polinomokkal
2.3.1.4. Görbeinterpoláció harmadfokú Hermite-féle keverőfüggvényekkel.
Tulajdonságok
2.3.1.5. Görbeinterpoláció ötödfokú Hermite-féle keverőfüggvényekkel. 
Tulajdonságok
2.3.1.6. Racionális görbeinterpoláció
2.3.1.7. Harmadfokú spline görbeinterpoláció. Tulajdonságok
2.3.1.8. Interpolációs görbék objektumorientált és interaktív előállítása
2.3.2. Felületi interpoláció általában
2.3.2.1. Harmadfokú Coons-Hermite foltok sima illesztése
2.3.2.2. Harmadfokú spline foltok sima illesztése 
2.3.2.3. Interpolációs felületek objektumorientált és interaktív előállítása 

2.4. Görbe- és felületapproximáció
2.4.1. (Racionális) Bézier-görbék
2.4.1.1. A de Casteljau algoritmus és Bernstein-polinomok kapcsolata 
2.4.1.2. (Racionális) Bézier-görbék tulajdonságai
2.4.1.3. (Harmadfokú) (racionális) Bézier-görbék sima illesztése
2.4.2. (Racionális) Bézier-felületek. Tulajdonságok
2.4.2.1. (Harmadfokú) (racionális) Bézier-felületfoltok sima illesztése 
2.4.3. (Racionális) B-spline görbék. Tulajdonságok
2.4.3.1. Nyílt és zárt (racionális) B-spline görbék sima illesztése 
2.4.4. (Racionális) B-spline felületek. Tulajdonságok
2.4.4.1. Nyílt és zárt (racionális) B-spline felületfoltok sima illesztése

3. Fejezet. Bevezetés az OpenGL árnyaló nyelvébe (OpenGL Shading Language/GLSL)
3.1. Alapok
3.2. Nyelv értelmezése
3.3. A programozható OpenGL csővezeték
3.4. Beépített függvények
3.5. Az OpenGL árnyaló nyelv API-ja
3.6. Árnyalók (shaders) fejlesztése
3.7. Az OpenGL rögzített funkcionalitásának emulálása
3.8. Tárolt textúra árnyalók
3.9. Procedurális textúra árnyalók
3.10. Fények
3.11. Árnyékok
3.12. Felületi jellemzők
3.13. Zaj
3.14. Animáció
3.15. Simított procedurális textúrák

Gyakorlati órák tematikája

1.1. Egy objektum orientált OpenGL munkakörnyezet létrehozása
1.2. Koordináta- és ponttranszformációk
2.1. Parametrikus görbék megjelenítése. Görbék felületeken
3.1. Parametrikus felületek közelítése/megjelenítése négyszögű hálóval 
3.2. Parametrikus felületek közelítése/megjelenítése háromszögű hálóval
4. Kontrollobjektumok létrehozása a GLUI könyvtár segítségével
5. Harmadfokú Hermite-interpoláció
6. Ötödfokú Hermite-interpoláció
7. Harmadfokú interpolációs splineok
8. Harmadfokú Coons-Hermite foltok sima illesztése
9. Harmadfokú spline foltok sima illesztése
10. (Harmadfokú) (racionális) Bézier-görbék sima illesztése
11. (Harmadfokú) (racionális) Bézier-felületfoltok sima illesztése
12. (Racionális) B-spline görbék sima illesztése
13. (Racionális) B-spline felületfoltok sima illesztése
14. Vertex és fragment-árnyalók GLSL alatt	

V. Könyvészet
1.	J. Hoschek, D. Lasser: Fundamentals of Computer Aided Geometric Design, A K Peters Ltd., Wellesley, Massachusetts, USA (1993)
2.	Juhász Imre: Számítógépi geometria és grafika, Miskolci Egyetemi Kiadó, Miskolc, Hungary (1995)
3.	Füzi János: Interaktív grafika, ComputerBooks, Budapest, Hungary (1997)
4.	Dave Shreiner, Mason Woo, Jackie Neider, Tom Davis: OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 2 (5th Edition), Addison-Wesley Professional (2005)
5.	Randi J. Rost: OpenGL Shading Language (Second Edition), Addison-Wesley Professional (2006) 

VI. Az oktatói tevékenység heti tematikája
1.	Homogén koordináták. Koordináta transzformációk
2.	Ponttranszformációk és vetítések. Hat szabadságfokkal rendelkező kamera osztály implementálása
3.	Harmad- és ötödfokú Hermite interpoláció. Harmadfokú Ferguson splineok. Implementálás
4.	Bézier görbék. Tulajdonságok
5.	Bézier görbék. Tulajdonságok (folytatás). Implementálás
6.	Normalizált B-spline görbék. Tulajdonságok
7.	Normalizált B-spline görbék. Tulajdonságok (folytatás). Implementálás
8.	Racionális Bézier és B-spline görbék. Implementálás
9.	Coons-Hermite foltok sima illesztése. Bézier felületek sima illesztése. Implementálás
10.	Gömb, henger és tórusz topológiájú normalizált B-spline felületek. Implementálás
11.	Bevezetés a GLSL nyelvbe
12.	Bevezetés a GLSL nyelvbe (folytatás)	

VII. Alkalmazott didaktikai módszerek
–	előadás;
–	problémafelvetés;
–	feladatmegoldás;
–	objektum orientált programozás;
–	egyéni vagy csoportos projektek íratása;
–	dolgozat íratása.	

VIII. Értékelés
Ellenőrzési mód: kollokvium
Kötelező a jelenlét: laboron
Önálló munka: heti programok, egyéni vagy csoportos projekt
Megjegyzés: a végső jegyben 60%-ban számít a labortevékenység (programok, projekt) 	

IX. Kiegészítő könyvészet
1.	G. Farin: Curves and Surfaces for CAGD: A Practical Guide (The Morgan Kaufmann Series in Computer Graphics), Academic Press (2002)

	Dátum: 2009.11.26.				Előadás felelőse
							Dr. Róth Ágoston, egyetemi tanársegéd

Tanszékvezető				Dékán
Dr. Octavian Agratini, egyetemi tanár	Dr. Leon Ţâmbulea, egyetemi tanár