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 BMEVIIIAC01
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 1 0
jelleg (kapcsolt/önálló) kapcsolt
Tanulmányi teljesítmény/értékelés típusa vizsga
Tantárgy kreditértéke 4
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 http://cg.iit.bme.hu/portal/node/42223
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. 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.


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.

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

Kéthetente 2x2 óra előadás, 1x2óra géptermi gyakorlat

Tanulástámogató anyagok

Online források
CROCKFORD, Douglas. JavaScript: The Good Parts: The Good Parts. " O'Reilly Media, Inc.", 2008.; GREGORY, Jason. Game engine architecture. CRC Press, 2009.; ZINK, Jason; PETTINEO, Matt; HOXLEY, Jack. Practical rendering and computation with Direct3D 11. CRC Press, 2016.

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)
lineáris algebra, objektum-orientált 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)
lineáris algebra, objektum-orientált programozás, számítógépes grafika
Általános szabályok
Követelmények: 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. Pótlási lehetőségek: A félévközi feladatokat nem lehet külön pótolni, de csak a legjobb 3 házi feladat, illetve 4 labor számít, ez implicit pótlási lehetőséget ad a korai mulasztásokra. A vizsga a vizsgaszabályzatnak megfelelően ismételhető.
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

Nincs megadva.

Ajánlott tantárgyak
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.