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: 2017. január 10.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar
    Mérnök informatikus szak, BSc képzés
    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIIIAB03 4 3/0/0/f 4  
    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 (egy és kétváltozós vektorfüggvények deriválása), Fizika (súlypont, dinamika, geometriai optika).

    6. Előtanulmányi rend
    Kötelező:
    (TargyEredmeny( "BMEVIIIAA00" , "jegy" , _ ) >= 2
    VAGY TárgyEredmény( "BMEVIIIAA03" , "jegy" , _ ) >= 2

    VAGY
    (TargyEredmeny( "BMEVIIIA114" , "jegy" , _ ) >= 2
    ÉS
    TargyEredmeny( "BMEVIIIA115" , "jegy" , _ ) >= 2) )


    ÉS NEM ( TárgyEredmény( "BMEVIIIA316" , "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIIIA316", "FELVETEL", AktualisFelev()) > 0
    VAGY
    TárgyEredmény( "BMEVIIIAB07" , "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIIIAB07", "FELVETEL", AktualisFelev()) > 0)

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

    Ajánlott:

    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

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

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

    10. 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.
    11. Pótlási lehetőségek A házik nem pótolhatók.
    12. Konzultációs lehetőségek A házik elkészítése során on-line és igény esetén csoportos konzultációs lehetőséget biztosítunk.
    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ő.
    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
    Kontakt óra42
    Félévközi készülés órákra 0
    Felkészülés zárthelyire30
    Házi feladat elkészítése48
    Kijelölt írásos tananyag elsajátítása0
    Vizsgafelkészülés0
    Összesen120
    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 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 pontozás

    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.