Belépés címtáras azonosítással
magyar nyelvű adatlap
3D grafikus rendszerek
A tantárgy angol neve: 3D Graphics
Adatlap utolsó módosítása: 2017. június 23.
A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.
A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.
A tárgy célja, hogy megismertesse a hallgatókat a háromdimenziós grafika megjelenítéséhez szükséges szoftver- és hardvereszközökkel, azok használatával és programozásával. A tárgy keretében a hallgatók megismerik a WebGL (online, böngészőben is futtatható 3D programok), az OpenGL (PC és mobil platformokon is futtatható programok) és D3D (Windows PC és Windows Phone platformokon futtatható programok) programozási környezeteket. A tárgy bemutatja a 3D grafikus rendszerek, virtuálisvalóság- és játékmotorok alapvető szoftver-architektúráját, a több platformra történő egyidejű fejlesztés módszereit, másrészt kitér az egyes platformok egyedi lehetőségeire, a kamerás/távolságképes, érintőképernyős és mozgásérzékelős beviteli eszközökre, a beépített kamerát és a gépi látás technikáit is használó kiegészítettvalóság-rendszerekre, illetve a GPGPU képességekre.
1. hét
Előadás: JavaScript programozás: típusok, operátorok, függvények, objektumok. Funkcionális vs. objektum-orientált programozás. Duck typing vs. kötött interfészek. JavaScript a böngészőben. DOM, Canvas, CSS. Szövegmegjelenítés. WebGL. Eseménykezelés. Rajzolási hurok.
2. hét
Előadás: A grafikus hardver programozása WebGL-ből. Konfigurálható és programozható elemek. WebGL vs. GLSL vs. HLSL. Hogyan tervezzünk/válasszunk vektor/mátrix könyvtárat?
Géptermi gyakorlat: JavaScript + WebGL: mozgó, textúrázott négyszög.
3. hét
Előadás: Visszavetítés programnyelvekben. Visszavetítés betekintéssel, módosíthatósággal. Árnyaló-visszavetítés. Játékobjektum-modellek: komponensalapú, tulajdonságalapú. Anyagrendszerek. Színtérgráf. Többszörös taxonómiák grafikus alkalmazásokban. Monolitikus osztály-hierarchia. Mix-in. Fix és dinamikus komponens-rendszerek.
4. hét
Előadás: Egyszerű mechanikai szimuláció. Csatolt objektumok. Csillapítás és vezérelhetőség. Ütközésdetektálás- és válasz. Double dispatch probléma, visitor minta, megoldás dinamikus típusokkal. Egyszerű mesterséges intelligencia.
Géptermi gyakorlat: 2D WebGL játékalkalmazás.
5. hét
Előadás: Kvaterniók: műveletek, tulajdonságok. Möbius-transzformációk. SLERP. 3D forgatások. Yaw-pitch-roll. 3D modellformátumok és kamerakezelés.
6. hét
Előadás: 3D árnyalás haladóknak: környezet-leképezés, procedurális textúrázás, normáltérképek.
Géptermi gyakorlat: WebGL modellnézegető/shader tesztelő
7. hét
Előadás: Zajgenerálás: zajtulajdonságok, Perlin, simplex, Cellular, Gabor, LRP. Szintfelület-sugárkövetés. Ray marching. Gömbkövetés. 3D fraktálgeometriák, kvaternió-Julia halmaz.
8. hét
Előadás: Térfogati fényjelenségek és egyszerűsített gyakorlati módszerek.
Géptermi gyakorlat: végtelen terep megjelenítése magasságtérkép alapján, illetve procedurálisan, implicit függvény alapján. Konstans és változó köd.
9. hét
Előadás: Render-to-texture. Többmenetes módszerek: késleltetett árnyalás, sziluettélek, árnyékok, utófeldolgozás, 3D festés, sorrendfüggetlen átlátszóság, 2.5D imposztorok.
10. hét
Előadás: D3D programozás. Buffertípusok és műveleteik. Általános célú számítások. CUDA vs. OpenCL vs. DirectCompute.
Géptermi gyakorlat: Textúrába renderelt kép átlagos fényességének számítása redukcióval, compute shaderben. Tone mapping.
11. hét
Előadás: Beépített kamera kezelése. Jellegzetes pontok felismerése.
12. hét
Előadás: Kamerakép manipulációja. Kamerakép és szintetikus képelemek kompozitálása.
Géptermi gyakorlat: WebGL videólejátszás- és feldolgozás. Virtuálisvalóság-elemek hozzáadása markerek alapján.
13. hét
Előadás: Karakteranimácó az ipari gyakorlatban. Csontok, ízületek, csomópontok fogalma. Rigging, skinning, vertex blending. Duális kvaterniók karakteranimációhoz.
14. hét
Előadás: D3D12 és Vulkan.
Géptermi gyakorlat: Tömeges karakteranimáció compute shaderek segítségével.
Kis házifeladatok minden laborra (kéthetente). Összesen 5 feladat, vizsgába a legjobb három beszámít, egyenként 10% erejéig. A 7 géptermi laboratórium közül a legjobb 4 vizsgába beszámít, egyenként 6% erejéig. Összesen ezek a félévi jegy 54%-át adják.
A félév végi vizsgán összesen a pontszám 46%-a szerezhető meg.
Kontakt óra
42
Félévközi felkészülés előadásokra
7
Félévközi készülés gyakorlatokra
14
Házi feladatok elkészítése
25
Vizsgafelkészülés
32
Összesen
120