K-INFO
HU
EN
Belépés

3D grafikus rendszerek

3D Graphics
A tantárgyleírás hatályossága
Hatályosság kezdete:
2026. March 21.
Hatályosság vége:
Tantárgy neve (magyarul, angolul)
3D grafikus rendszerek
3D Graphics
Tantárgykód BMEVIIIAC11
Tantárgyjelleg
Képzési szint
Kurzustípusok és óraszámok (heti/féléves)
Kurzustípus elmélet gyakorlat laboratóriumi gyakorlat
óraszám (heti) 2 2 0
jelleg (kapcsolt/önálló) kapcsolt
Tanulmányi teljesítmény/értékelés típusa vizsga
Tantárgy kreditértéke 5
Tantárgyfelelős
Szécsi László
beosztás: egyetemi docens
Tantárgyat gondozó oktatási szervezeti egység
Irányítástechnika és Informatika Tanszék
Kar Villamosmérnöki és Informatikai Kar
Tantárgy weboldala
Tantárgy elsődleges mintatantervi jellege
Közvetlen előkövetelmények – Erős előkövetelmény nincs
Közvetlen előkövetelmények – Gyenge előkövetelmény nincs
Közvetlen előkövetelmények – Párhuzamos előkövetelmény nincs
Közvetlen előkövetelmények – Mérföldkő előkövetelmény nincs
Közvetlen előkövetelmények – Kizáró feltétel nincs

Célkitűzés

Tantárgyprogram

1. A böngésző programozása Kotlin nyelven, eseménykezelés, a grafikus csővezeték programozása a WebGL API-n keresztül. 

2. Vektor- és mátrixműveletek célszerű implementációja különböző platformokon. Optimalizáció JavaScriptben. Típusos tömbök használata. Operátor-túlterhelés Kotlinban. Párhuzamos műveletek. Swizzle operator megvalósítása különböző programnyelveken, tulajdonság-elérő metódusokkal, illetve metaprogramozással. 

3. Játékobjektum-modellek (objektum-központú, tulajdonság-központú, monolitikus, komponens-alapú). Kihívások és jó gyakorlatok. 

4. 2D kamera és fizikai szimuláció. Transzformációs hierarchiák, kényszerek. Ütközésdetektálás-és válasz. Térbeli hash alapú közelségi keresés dinamikus terekben. 

5. 3D modellek létrehozása Blenderben. Poliédermodellek, árnyalási normálok szerkesztése, UV paraméterezés. Python scriptek Blenderben, alapvető szintérmanipuláció és geometria-feldolgozási technikák. Modellformátumok, JSON deszerializáció, modellfileból betöltött geometriák, többanyagos hálók. Háromdimenziós forgatások és vezérlések, kvaterniók, duális kvaterniók. Megjelenítés perspektívában. 

6. 3D transzformációs effektek (háttér doboztextúra alapján, pályaanimáció, vetített árnyékok, végtelen geometriák, csatolt objektumok). 

7. Radiometriai és fotometriai mértékek. Árnyalási effektek. Környezet-leképezés. Normál-leképezés. Anyagmodellek: diffúz, ideális, spekuláris, Phong, Phong-Blinn, Max-Blinn, wrap shading. Fizikai plauzibilitás és műtermékek kapcsolata. Fényforrásmodellek. 

8. Karakter-animáció. Csomópontok, ízületek és csontok fogalma, viszonyaik. Csonttranszformációk felépítése. Animációs formátumok, klippek, keretek, ízület-transzformációk, rögzítési póz és rögzítési transzformációk. A csonttranszformációk számítása, interpoláció. Lágy bőrözés és implementációja a GPU-n. Nagyszámú karakter animációjának párhuzamos számítása. 

9. Hálózati játékmechanika és szinkronizáció. Extrapoláció és interpoláció. 

10. Zajfüggvények, procedurális implicit geometriák és megjelenítésük

11. GPGPU számítások a grafikus API-n keresztül (Compute Shader)

12. 3D fizikai szimuláció, ütközésdetektálás és -válasz

 

Gyakorlatok: 

1. WebGL alapok. Gradle. Konvencionális projektstruktúra. Fejlesztői környezet (alternatívák). Kotlin2JS, source map. Hibakeresés a böngészőben. Geometriákkal és árnyalókkal kapcsolatos feladatok. Uniform paraméterek beállítása. Vektor és mátrix osztályok használata. Egyszerű animáció, eseménykezelés. Textúrázás. 

2. Entitás-komponens rendszer. Anyagok, hálók, játékobjektumok használata. Színtérmendzsment. Animációs logikai komponensek. 2D kamera. 

3. 2D fizikai szimuláció, játékmechanika. Erők, forgatónyomatékok, Euler-integrálás. Súrlódás, légellenállas, energiaveszteség. Ütközésdetektálás és ütközésválasz. Játékobjektumok megsemmisítése és létrehozása. Időzített események. Függő objektumok. 

4. 3D transzformációk, környezetek. 3D modellbetöltés. Perspektív kamera. Pixelenkénti sugárirány számítása a GPU-n. Doboztextúra, környezeti térkép háttérként. Síkra vetített árnyék. 

5. Árnyalás. Normálvektorok transzformációja. Tükörfelület, ideális visszaverődés, környezet-leképezés. Procedurális normál-leképezés. Egyszerű zajfüggvény. Fényforrások kezelése. BRDF modellek: diffúz, Phong-Blinn, Max-Blinn. Többmentes renderelés, frame buffer, utófeldolgozási effekt. 

6. Tömeges karakter-animáció a GPU-val. Animációs adatok betöltése. Rögzítési transzformációk. Duális kvaterniók. Csonttranszformációk számítása. Interpoláció. Lágy bőrözés.  

7. Kliens-szerver architektúra, Node.js, WebSocket kommunikáció. Avatar-vezérlés. WebSocket hello, üzenetek átküldése. 

8. Hálózati predikció és interpoláció, multiplayer mechanika. Interpoláció, lövés, ütközésdetektálás, ütközésválasz. 

9. Procedurális terep megjelenítése valós idejű sugármeneteléssel. Magasságmező textúrából. Keresési tartomány meghatározása. Gradiens és normálvektor véges differenciákból. Bináris keresés. Implicit felület zajfüggvénnyel. Homogén résztvevő közeg konstans elnyelődéssel és forrástaggal.

10. Utófeldolgozási hatások Direct3D Compute Shaderrel. Párhuzamos redukció. Render-to-texture. Tone mapping.

11. Fizikai szimuláció a PhysX könyvtárral. Aktorok és alakzatok létrehozása. Gravitáció. Kinematikus aktorok. Ütközés, restitúciós tényező hatása. Kényszerek, csatlakozások, motorok.

12. Robotkar felépítése és vezérlése. A stabilitás gyakorlati feltételei. Jármű, kerekek, terep. 

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 az online, böngészőben is futtatható 3D programok létrehozására alkalmas WebGL (vagyis OpenGL ES) API-t, illetve a Windows platformon működő D3D grafikus könyvtárat, és ezek szoftverbe illesztésének jellemző módjait. A tárgy bemutatja a 3D grafikus rendszerek, virtuálisvalóság- és játékmotorok alapvető szoftver-architektúráját, a fizikai szimulációhoz használható PhysX könyvtárat, illetve a sokszereplős hálózati rendszerek szinkronizációs mechanizmusait. 

Tanulmányi eredmények

Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:

Tudás

Nincsenek rögzített tanulási eredmények.

Képességek

Nincsenek rögzített tanulási eredmények.

Attitűd

Nincsenek rögzített tanulási eredmények.

Autonómia és felelősség

Nincsenek rögzített tanulási eredmények.

Oktatási módszertan

Hetente 2 óra előadás, 2 óra géptermi gyakorlat. 

Tanulástámogató anyagok

Nincs megadva.

A tantárgy teljesítéséhez ajánlott előzetes ismeretek

Tudás típusú kompetenciák
(azon előzetes ismeretek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
Diszkrét matematika (vektor-, mátrixműveletek, bázistranszformáció)  Fizika (mechanika)  Objektum-orientált és funkcionális programozás  Számítógépes grafika 
Képesség típusú kompetenciák
(azon előzetes képességek és készségek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
nincs
Ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák
(azon ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák összessége, amelyek jelentősen hozzájárulnak a tantárgy eredményes teljesítéséhez)
Diszkrét matematika (vektor-, mátrixműveletek, bázistranszformáció)  Fizika (mechanika)  Objektum-orientált és funkcionális programozás  Számítógépes grafika 
Általános szabályok
Követelmények: A vizsgajegybe beleszámít:  A 8 legjobb a 12 db géptermi gyakorlatból, egyenként 4% erejéig. (Így minden labor teljesítését 0-4 pont között értékeljük. Összesen 32 pont megszerzése számít 100%-os teljesítésnek.)  A 4 legjobb a 6 db házi feladatból, egyenként 8% erejéig. (Így minden házi feladatot 0-8 pont között értékelünk. Összesen 32 pont megszerzése számít 100%-os teljesítésnek.)  Az aláírás megszerzéséhez a fenti 64 pont 40%-át, 25 pontot kell megszerezni.  A vizsgára bocsátás feltétele az aláírás megszerzése.  Írásbeli vizsga, ahol a pontszám fennmaradó 36%-a szerezhető meg. A maximális vizsgapontszám 36 pont. Az ebből megszerzett pontokat a szorgalmi időszakban megszerezett legfeljebb 64 ponttal összeadjuk. Az osztályzat, 40 ponttól elégséges, 55 ponttól közepes, 70 ponttól jó, 85 ponttól jeles.  Pótlási lehetőségek: Külön pótlási lehetőség nincs, de a feladatoknak csak adott része számít a jegybe.
Teljesítményértékelési módszerek
Szorgalmi időszakban végzett teljesítményértékelések részletes leírása

Nincs megadva részletes értékelés.

Szorgalmi időszakban végzett teljesítményértékelések részaránya

Nincs megadva részarány.

Vizsgaidőszakban végzett teljesítményértékelések részletes leírása

Nincs megadva részletes értékelés.

Vizsgarészek részaránya

Nincs megadva részarány.

Érdemjegy megállapítása

Nincs megadva érdemjegy határ.

Jelenléti és részvételi követelmények

Nincs megadva jelenléti követelmény.

Javítás, ismétlés és pótlás különös szabályai

Nincs megadva.

Rövid leírás

Nincs megadva.

Részletes leírás
IMSc program: Minden gyakorlaton kijelölt iMSc feladatok megoldásával lehet pontot szerezni. Ezek megoldásához az instrukciók, források a diasorokban szerepelnek, illetve a gyakorlatvezető beszél róluk, azokkal kapcsolatos kérdésekre válaszol. A házi feladatokban a szükségesnél több részfeladat megoldásával lehet iMSc-pontot szerezni.  1. Sprite-animáció.  2. Scrollozó háttér.  3. Ütközésválasz súrlódással.  4. Végtelen sík. Végtelen alakzatok homogén koordinátákkal.  5. Fizikai alapú renderelés (PBR).  6. Geometry instancing.  7. Kliens paraméterezése, perzisztens ID.  8. Térbeli hash alapú közelségi keresés.  9. Inhomogén közeg exponenciális elnyelődéssel és forrástaggal.  10. Wavefront optimalizáció.  11. Összetettebb ütközőalakzatok.  12. Kontakt-reakciók, trigger alakzatok. IMSc pontok: Minden gyakorlaton 1 (összesen 12), minden házi feladattal 2 iMSc pont szerezhető (összesen 12). A gyakorlatokon a kijelölt pluszfeladatot kell teljesíteni, a házi feladatokban a választható funkciók közül kell többet megvalósítani. 1 iMSc pont előadáson a diszkusszióban való aktív közreműködésért jár.  Így összesen 25 IMSc pont szerezhető. Az IMSc pontok megszerzése a programban nem résztvevő hallgatók számára is biztosított.  
Ajánlott tantárgyak
Programozás  Számítógépes grafika 
A tantárgy elvégzéséhez szükséges tanulmányi munka

Nincs megadva munkaidő bontás.

Tantárgykövetelmények hatályossága
Tantárgykövetelmények hatályosságának kezdete:
Tantárgykövetelmények hatályosságának vége:
Tantervi elhelyezés

Nincsenek rögzített tantervi elhelyezések ehhez a tárgyverzióhoz.