Grafika 1. ZH G csoport megoldás

**1. Soroljon fel minél többet a számítógépes grafika tudomány alkalmazási területei közül! Határozza meg a virtuális valóság fogalmát! Mit értünk fotorealisztikus ábrázolás alatt a számítógépes grafikában?**

* digitális művészet (digital art)
* grafikai tervezés (graphic design)
* információ megjelenítés (information visualization)
* információ-grafika (infographics)
* oktatás (education)
* racionális gyógyszertervezés (rational drug design)
* számítógépes biológia (computational biology)
* számítógépes fizika (computational physics)
* számítógépes szimuláció (computer simulation)
* számítógéppel segített tervezés (computer-aided design)
* tudományos vizualizáció (scientific visualization)
* videojátékok (video games)
* virtuális valóság (virtual reality)
* webtervezés (web design)

Virtuális valóság alatt elképzelt vagy méretük, illetve távolságuk miatt láthatatlan, veszélyességük miatt megközelíthetetlen világok valósághű, interaktív modellezését és megjelenítését értjük számítógépen.

Fotorealisztikus képábrázolásról akkor beszélünk, ha a számítógépes grafikával generált képeket gyakorlatilag nem lehet megkülönböztetni a fénykép vagy videofelvételtől.

**2. Hogyan lehet megoldani a modellezési algoritmusok egységes kezelését? Milyen illeszkedési feladatokat kell megoldani a görbék és felületek modellezés eljárásával? Hogyan biztosítható a modellezés során felhasznált függvények egyszerű kiszámíthatósága? Sorolja fel, milyen követelményeket kell kielégíteni a vektorgrafikus modellezésnek a felhasználóval való interaktív kapcsolattartás miatt!**

Az algoritmusokat programtechnikailag egységesen, relatíve nem nagy ráfordítással kell megvalósítani. Ezért olyan modellezési eljárások kellenek, amelyek kizárják az egyedi, egy-egy speciális függvényhez kötődő megoldásokat. Ugyanakkor a modellezési eljárásnak a legkülönbözőbb formájú, alakú görbéket, felületeket is elő kell tudnia állítani. A modellezési eljárás biztosítsa az előre megadott pontokon áthaladó térgörbék és felületek hatékony generálását, támogassa a különböző térelemek illeszkedésének (metszéspontok, érintés) kezelését. A modellezési eljárásban felhasznált függvényeknek viszonylag egyszerűen kiszámíthatóaknak kell lenniük. Az egységes programtechnikai kezelés miatt ezek azonos tulajdonságú függvénycsaládokból kerüljenek ki.

A felhasználóval való hatékony, interaktív kapcsolattartás érdekében

* A modellezési eljárás biztosítsa, hogy a felületek és görbék transzformálása (például térbeli mozgatás vagy a paramétertartomány lineáris transzformációi) relatíve egyszerű algoritmussal, nem túl nagy számításigénnyel megvalósítható legyen. (Például ne legyen szükség nagyszámú görbepont transzformált vektorainak egyenkénti kiszámítására.) Másként fogalmazva, a modellezési eljárásnak invariánsnak kell lennie az affin transzformációkra és a vetítésekre.
* A modell olyan legyen, hogy a képernyőn való megjelenítéshez szükséges poligon és sokszöglapos közelítésre gyorsan konvergáló algoritmusokat lehessen kidolgozni.
* A modell tegye lehetővé a görbék és felületek lokális változtathatóságát, azaz ha például egy pontban kissé megváltoztatjuk a görbét, ez csak a pont közvetlen környezetében okozzon változást.

**3. Mikor magas a redundanciája egy közleménynek? Mondjon példákat a kódolási, képi és pszichovizuális redundanciára! Mi alapján lehetséges a veszteségmentes tömörítés? Mi teszi lehetővé a veszteséges tömörítést?**

Egy közleménynek akkor magas a redundanciája, ha a "megértéséhez" minimálisan szükséges információt kifejező jeleken túlmenően sok felesleges jelet is tartalmaz.

* Kódolási redundancia lép fel akkor, amikor például a fekete-fehér képpontok ábrázolásához 8 bitet, azaz 1 byte-ot használunk fel.

* Képi redundanciát jelent például:
	+ ha nagy kiterjedésű, azonos színű objektumok minden egyes képpontját tároljuk a geometriai jellemzők helyett,
	+ a mozgóképeknél és az animációknál jelentős redundancia léphet fel akkor, ha az egymást követő
	+ képek csak nagyon kis mértékben különböznek egymástól, és ahelyett, hogy csak az eltéréseket tárolnánk, minden képet teljes körűen kódolunk és tárolunk,
	+ ha a vektorosan is tárolható alakzatokat raszteresen tároljuk, például egy háromszögnél elegendő a három csúcspont koordinátáit tárolni, és nem kell az összes pixel koordinátáét és színét.
* Pszihovizuális redundanciát jelent például, ha
	+ a képminőségbeli eltéréseket (például sok színárnyalattal nagy felbontás) az ember már nem tudja megkülönböztetni, szubjektíve a képnek csak egy része érdekes számunkra, ennek ellenére a teljes képet tároljuk és feldolgozzuk.

A veszteségmentes képtömörítés a kép összes információját megőrzi. Ez úgy lehetséges, hogy ezek az eljárások csak a kódolási és a képi redundanciát szüntetik meg.

* A Huffmann-kódolásnál a nagyon gyakori adatokat kódoljuk a legkevesebb bitszámmal. Így például, ha a magyar nyelvű szövegeket kell kódolnunk, a leggyakoribb magánhangzó „E” betűt csak egy bittel jellemezzük.
* A képen azonos jellemzőkkel bíró homogén foltokat kódolhatjuk a geometriai adatokkal és 1 pixel jellemzőivel ahelyett, hogy az összes pixelről tárolnánk az összes információt.
* A mozgóképeknél jelentős tömörítést érhetünk el azzal, ha nem a teljes kép adatait, hanem csak a képpont értékek megváltozott adatait tároljuk.
* A raszteres képeknek az Interneten általánosan elterjedt veszteségmentes képtömörítő eljárása a GIF (Graphics Interchange Format). Ez kvázi szabvánnyá a Compuserve hálózat által vált. A GIF tömörítésű fájlok kiterjesztése .gif.

A veszteséges tömörítés a képek pszihovizuális redundanciáját használja ki

* az emberi érzékeléssel ne lehessen észre venni a minőségromlást (ez átlagosan 1:20-tól 1:40 arányú tömörítést tesz lehetővé),
* csak azt kívánjuk, hogy a kép lényeges objektumai felismerhetők legyenek (ekkor kb. 1:200 arányú tömörítést is elérhetünk).
* A veszteséges tömörítés legfontosabb algoritmusa a DFT, azaz a Diszkrét Fourier Transzformáció. (Ezt szokták DCT-nek, azaz diszkrét koszinusz transzformációnak is nevezni.) Ezt az algoritmust alkalmazza az Interneten legelterjedtebb JPEG nevű veszteséges tömörítés, amely a Joint Photographic Experts Group rövidítésből származik. Az eljárás ISO és CCITT szabvány is. A JPEG tömörítésű fájlok kiterjesztése .jpg.

**4. Mi a térfogatmodellezés alapelve? Mit nevezünk voxelnek? Hogyan modellezhetjük a testeket voxelekkel?**

A térfogatmodellezésnél (cell modeling) egy tömör tárgyat több egymáshoz csatlakozó, de egymást nem metsző kisebb tömör tárgyra, azaz sejtekre bontunk fel. Az elterjedtebb modellezési módszerek a sejtek két típusát kezelik:

* a sejtek azonos típusú alakzatok (például hasábok), de méretük egy paramétertől függően változhat,
* a sejtek azonos típusú és méretű alakzatok, ekkor ezeket (a képponthoz, azaz a pixelhez hasonlóan) voxelnek (volument element) nevezzük.

A modellezendő objektumokat a voxelekkel úgy írjuk le, hogy minden egyes, a testhez teljes egészében vagy csak részlegesen hozzátartozó voxel adatait hozzárendeljük a testhez

**5. Mi a fázisanimáció (key framing) lényege? Hogyan készítik el a karakter kulcspozícióit a 3D mozgásrögzítés (motion capture) módszerével? Mire használjuk a klipeket nemlineáris animációnál? Ismertesse az arcanimáció (facial animation) lépéseit!**

A fázisanimáció (key framing) eljárás a rajzfilmkészítés gyakorlatából származik, ahol először a kulcsfontosságú képkockákat rajzolták meg, és ezek közötti képeket a fázisrajzolók később készítették el. A testre aktív vagy passzív érzékelőket rögzítenek, amelyek pozícióját a felvétel során nagy pontossággal mérik. Ezeknek a méréseknek az eredményei alapján azután “könnyen” kiszámítható a szereplő csontvázának helyzete és például csuklóinak pontos orientációja.

A nemlineáris animációkat (nonlinear animation) ennek az elvnek megfelelően az egyes mozdulatsorozatoknak megfelelő újrafelhasználható (elmentett) részanimációkból, az ún. klipekből állítjuk össze.

Az arc animációját a következő lépésekben végezhetjük el:

* Lemodellezzük a karakter arcát. Ez általában kifejezéstelen “pókerarc”. Ezt nevezzük bázisobjektumnak.
* Másolatokat készítünk a bázisobjektumról.
* A másolatokat úgy deformáljuk, hogy különböző arckifejezéseket mutassanak (célobjektumok).
* Interpolációval elvégezzük a bázis- és célobjektumok közötti közbeeső állapotok generálását.