A tantárgyleírás hatályossága
| 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) |
|
||||||||||||
| 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
elérhetőség:
szecsi.laszlo@vik.bme.hu
|
||||||||||||
| 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
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.
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
Tanulástámogató anyagok
Nincs megadva.
A tantárgy teljesítéséhez ajánlott előzetes ismeretek
Általános szabályok
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
Ajánlott tantárgyak
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
Tantervi elhelyezés
Nincsenek rögzített tantervi elhelyezések ehhez a tárgyverzióhoz.