Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    Számítógépes grafika

    A tantárgy angol neve: Computer Graphics

    Adatlap utolsó módosítása: 2024. január 28.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar
    Informatika BSc
    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIIIAB12 4 3/0/1/v 5  
    3. A tantárgyfelelős személy és tanszék Dr. Szirmay-Kalos László,
    A tantárgy tanszéki weboldala http://cg.iit.bme.hu/portal/szamitogepes-grafika
    4. A tantárgy előadója Dr. Szirmay-Kalos László, egyetemi tanár
    5. A tantárgy az alábbi témakörök ismeretére épít 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 (többváltozós vektorfüggvények deriválása), Fizika (súlypont, dinamika, geometriai optika).
    6. Előtanulmányi rend
    Kötelező:
    (NEM
    (TárgyTeljesítve_Képzésen("BMEVIIIAB07") ) )

    ÉS

    ((EgyenCsoportTagja("INFO - 2022 - MINTATANTERV HALLGATÓI") ÉS
    (TárgyTeljesítve("BMEVISZAA06") VAGY
    TárgyTeljesítve("BMEVISZAA03") VAGY
    TárgyTeljesítve("BMEVISZAA00") )

    ÉS
    TárgyTeljesítve("BMEVIIIAA03"))

    VAGY

    ((EgyenCsoportTagja("2014_tanterv_hallgatoi_info") VAGY
    EgyenCsoportTagja("5NAA8_2022 előtti tanterv")) ÉS
    (TárgyTeljesítve("BMEVIIIAA03")
    VAGY
    TárgyTeljesítve("BMEVIIIAA00"))) )

    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ó.

    7. A tantárgy célkitűzése 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.
    8. A tantárgy részletes tematikája
    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, elliptikus, hiperbolikus és projektív geometriák. Külső szemlélet. 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 egyenlet. Algebrák: vektor, mátrix, komplex szám, Clifford algebra.
    2. Interaktív grafikus rendszerek. Grafikus kártya felépítése. GLUT/OpenGL 3 és 4/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. Konvex burok program.
    3. 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.
    4. 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. Eltolás, skálázás, forgatás (Rodriguez formula). Átfordulási probléma.
    5. 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.
    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.
    8. Inkrementális 3D képszintézis. Felületek tesszellációja. Modellezési transzformáció. 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.
    9. Számítógépes animáció. Mozgás definíciója. Valószerű mozgás. Key-frame animáció. Mechanikai alapok pontszerű testekre. Diszkrét idő szimuláció. 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. Ütközésdetektálás és ütközésválasz. Terepmodellezés. Karakterek mozgása.
    11. Fraktálgeometria. Az Euklideszi geometria korlátai. Hausdorff dimenzió önhasonló és nem önhasonló objektumokra. Kaotikus dinamikus rendszerek, pszeudo-véletlenszám generátor. Egyszerű leképzések attraktora, stabilitás. Attraktor előállítása iterációval. Többértékű leképzések kezelése véletlen bolyongással. IFS
    12. Térfogat, orvosi és mérnöki vizualizáció. Optikai analógiák. GPGPU, CUDA. 
    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

    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 programozási feladatok megoldása során maguk is begyakorolnak. Implementációs környezetként a C++ nyelvet, az OpenGL könyvtár (3.3 verzió feletti) változatát, és a GLSL árnyalónyelvet használjuk.

    A félév során 5 feladatot adunk ki. A laborfeladatokat önállóan kell megoldani. A laboron személyes megjelenés nem szükséges, a megoldásokat az adott labor hetének végéig (vasárnap 23:59) kell a házi feladat portálra feltölteni. Pótlásra és késedelmes leadásra nincs lehetőség. A labor időpontjában konkrét kérdéseket lehet feltenni.

    Minden beadott feladatra 0 vagy 1 laborpontot lehet kapni. A félév során legalább 3 laborpontot kell gyűjteni. A laborpontok az aláíráson túl a vizsgán egyenként max 2 pontos bónuszkérdésekre jogosítanak. A laborpontok vektorát és a bónuszkérdésekre kapott értékelés vektorát skalárisan szorozzuk, és az eredményt hozzáadjuk az egyébként 30 pontos vizsga pontszámához. Azaz, ha valaki minden laborpontot összegyűjt és minden bónuszkérdést megválaszol, akkor a vizsgaeredményéhez 10 pontot adunk hozzá.

     A félév során a Moodle-en hetenként egy-egy kvízt kell kitölteni. Végül önkéntesen nagyházi vállalható.

    10. Követelmények

    A kredit megszerzésének feltétele legalább 3 laborpont és a Moodle kvízkérdés pontok 40%-nak összegyűjtése, valamint a vizsgának a jutalom kérdésekre adott pontokkal és nagyházi pontokkal együtt legalább 12 pontos teljesítése. 

    A laborfeladatok jutalom kérdésekre jogosítanak a vizsgán, amelyekre egyenként max 2 pont adható, majd a laborpontokat és a jutalomkérdésekre kapott pontokat egy-egy vektornak tekintjük, annak skalárszorzatát képezzük, majd az eredményt a vizsga pontokhoz hozzáadjuk (azaz aki mind az öt laborfeladatát jól készíti el, és mindegyik jutalomkérdésre max pontot kap, a vizsgán 10 pont bónuszt kap). 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 nagyházi pontokat ugyancsak duplázva (max 6 pont) a vizsgaeredményhez hozzáadjuk.


    11. Pótlási lehetőségek A laborfeladatok és a kvízek nem pótolhatók.
    12. Konzultációs lehetőségek Minden labor egy konzultációs alkalom.
    13. Jegyzet, tankönyv, felhasználható irodalom

    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ő.

    Az előadások videon a YouTube-on is hozzáférhetők. 

    A laborjegyzet a Moodle oldalon megtalálható, ahol további ajánlott irodalmak is elérhetők.

    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
    Kontakt óra56
    Félévközi készülés órákra20
    Kvízek megoldása
     4
    Laborfeladatok elkészítése
    40
    Kijelölt írásos tananyag elsajátítása 
    Vizsgafelkészülés30
    Összesen150
    15. A tantárgy tematikáját kidolgozta Dr. Szirmay-Kalos László, egyetemi tanár
    IMSc tematika és módszer Az előadások és laborok közösek. Minden hallgató szabadon választhat nagyházit.
    IMSc pontozás

    A vizsgán az 5-ös határ (24 pont) felett megmaradó pontok kétszeresét, de maximum 25-öt, automatikusan IMSc pontra váltunk.