K-INFO
HU
EN
Belépés

Számítógépes grafika

Computer 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)
Számítógépes grafika
Computer Graphics
Tantárgykód BMEVIIIAB03
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) 3 0 0
jelleg (kapcsolt/önálló)
Tanulmányi teljesítmény/értékelés típusa félévközi érdemjegy
Tantárgy kreditértéke 4
Tantárgyfelelős
DR. Szirmay-Kalos László
beosztás: egyetemi tanár
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/szamitogepes-grafika
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.     Analitikus geometriai áttekintés és ismétlés. Geometriák felépítése, különböző fontosabb geometriák főbb jellegzetességei. Euklideszi tér analitikus geometriája: pont, vektor, koordináta rendszerek. Vektorműveletek jelentése és implementációja C++-ban. Pontok kombinációja: szakasz, egyenes és kör parametrikus egyenlete. Távolság: sík, gömb implicit egyenlete.

2.      Geometriai modellezés. Klasszikus görbék: implicit, paraméteres és explicit forma. Szabad formájú görbék pontok kombinációjával. Lagrange interpoláció. Hermite interpoláció két pontra. Bezier approximáció. Catmull-Rom spline. Paraméteres felületek. Felület kihúzással és forgatással. Catmull-Clark felosztott görbe és felület. Testmodellezés, Euler tétel, poligon modellezés Euler operátorokkal.

3.      Geometriai transzformációk: Elemi transzformációk és mátrixos formalizmusuk. Homogén koordináták. Projektív geometria (ideális pont, Descartes és homogén koordináták viszonya). Homogén lineáris transzformációk és tulajdonságaik. Átfordulási probléma.

4.      2D képszintézis: Görbék vektorizációja. Poligonok háromszögekre bontása. Modellezési transzformáció. Nézeti transzformáció. Szakaszok és területek vágása. Szakaszrajzolás. Területkitöltés.

5.      GLUT/OpenGL 3+/GLSL: Szintaktika, kapcsolat az ablakozó rendszerrel. Ablak megnyitása, eseménykezelő függvények regisztrálása. Vertex array object és vertex buffer object. A GPU csővezeték 2D grafika esetén. GLSL shaderek. "Helló háromszög" megvalósítása OpenGL/GLSL környezetben. Az első házifeladat kiadása.

6.      3D képszintézis optikai alapmodellje: Sugársűrűség. BRDF. Optikailag sima anyagok, geometriai optika visszaverődési és törési törvénye, Fresnel egyenletek. Rücskös felületek, diffúz és csillanó felület. Irány és pont fényforrás. Színek fogalma, színillesztés.

7.      Sugárkövetés: Láthatósági probléma megoldása, felületek normálvektora, árnyékszámítás. Rekurzív sugárkövetés: visszaverődés és törés. A második házifeladat kiadása.

8.      Inkrementális 3D képszintézis. Felületek tesszellációja. Modellezési transzformáció. Az orientáció megadása mátrixszal és kvaternióval. Nézeti transzformáció perspektív vetítés esetén. Vágás homogén koordinátákban. Takarási probléma képernyő koordináta rendszerben, z-buffer algoritmus. Gouraud és Phong árnyalás. Textúra leképzés. OpenGL és a grafikus hardver 3D grafikai alkalmazása. Textúra leképzés, szűrés. GPU programozás. 3D grafikus rendszerek szoftverarchitektúrája. GPGPU, CUDA. A harmadik házi kiadása.

9.  Számítógépes animáció. Mozgás definíciója. Valószerű mozgás. Key-frame animáció. Mechanikai alapok. Diszkrét idő szimuláció. Ütközésdetektálás és ütközésválasz. Karakter animáció. Inverz kinematika.

10.  Számítógépes játékok: Virtuális valóság rendszerek és játékok felépítése. Az avatár. Játék motor. Plakátok, részecske rendszerek. A játékok fizikája. Terepmodellezés. Karakterek mozgása.

11.  Tudományos és orvosi vizualizáció. Direkt módszerek (térfogat vetítés és térfogati sugárkövetés). Indirekt módszerek: masírozó kockák. Térfogati sugárkövetés GPGPU megvalósítása. Az orvosi képalkotás alapjai: tomográfia.

12.  Fraktálgeometria.

A tárgy a képi információ előállításának és feldolgozásának algoritmusait mutatja be, a hallgatókat bevezetve az interaktív grafikus alkalmazások készítésébe és a grafikus hardver programozásába.

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

A tárgy alkalmazás orientált, azaz az előadásokon elmondott elmélet és algoritmusok programszintű implementációja is elhangzik, amit a hallgatók a házi feladatok során maguk is begyakorolnak. Implementációs környezetként a C++ nyelvet, az OpenGL könyvtár (3.0 verzió feletti) változatát, és a GLSL árnyalónyelvet használjuk.

Tanulástámogató anyagok

Online források
Szirmay-Kalos László,; Antal György, Csonka Ferenc: Háromdimenziós grafika animáció és; játékfejlesztés, ComputerBooks, 2005. a honlapról elektronikus formában is elérhető.

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)
A C++ programozási nyelv, Eseményvezérelt programozás, Bevezetés a számításelméletbe (vektorműveletek, lineáris algebra), Analízis (egy és kétváltozós vektorfüggvények deriválása), Fizika (súlypont, dinamika, geometriai optika).
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)
A C++ programozási nyelv, Eseményvezérelt programozás, Bevezetés a számításelméletbe (vektorműveletek, lineáris algebra), Analízis (egy és kétváltozós vektorfüggvények deriválása), Fizika (súlypont, dinamika, geometriai optika).
Általános szabályok
Követelmények: Három 3 pontos kisházi feladat a félév során, önállóan vállalható maximum 3 pontos nagyházi és egy 30 pontos ZH a félév végén. A kisházik jutalom kérdésekre jogosítanak a ZH-n, amelyek helyes megválaszolása a ZH eredményt kérdésenként annyival növelheti, amennyi pontot az adott kisházi ért. A nagyházit a 12. hétig egyeztetni kell a tárgyfelelőssel és a pótlási héten meg kell védeni. A kredit megszerzésének feltétele a házikból legalább 3 pont megszerzése és a ZH-nak a jutalom kérdésekre adott pontokkal együtt legalább 12 pontos teljesítése. Pótlási lehetőségek: A házik nem pótolhatók.
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: Az előadások közösek. Minden hallgató szabadon választhat a kisházik közül és nagyházit is készíthet, azzal a feltétellel, hogy az egyenként max 3 pontot érő házikból legalább 3 pontot összegyűjt. Az IMSc-s hallgatók - miként más hallgató is - ezzel a szabadsággal élhet, és gyűjthet többletpontokat.     IMSc pontok: A három kisházi egyenként max 3 pontot érhet, ami akkor válik érvényessé, ha a hallgató a ZH-n a kapcsolódó ellenőrző kérdésre is tud válaszolni. A nagyházira kapott pont érvényességéhez a pótlási héten a tárgyfelelős által kijelölt időpontban a nagyházit be kell mutatni és meg kell védeni. Az ellenőrző kérdésekre adott pontok vektorának és a kisházikra kapott pontok vektorának skaláris szorzatát képezzük és az eredményt a ZH eredményhez hozzáadjuk, így az érdemjegyet javíthatják. Amennyiben az összegzett pontok a jeles osztályzathoz szükséges 21 pontos határt meghaladják, a házikból ezután megmaradó pontok kétszeresét, de maximum 20-at, automatikusan IMSc pontra váltunk. Így például azon hallgató, aki a 30 pontos ZH-n legalább 21 pontot elér, miközben a kisházikat maximális 3 pontosra készítette, nagyházit is írt, és a kisházikkal kapcsolatos ZH kérdésekre is választ tudott adni a ZH-n, összesen min(12 x 2, 20) = 20 IMSc pontra tehet szert.
Ajánlott tantárgyak
A tárgyat csak azok vehetik fel, akik teljesítik a következőket: Programozás alapjai 2. és Bevezetés a számításelméletbe 2. teljesítése ÉS Programozás alapjai 3. tárgyból aláírás megszerzése
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.