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: 2019. február 8.

    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
    VIIIAB07   3/0/0/f 3  
    3. A tantárgyfelelős személy és tanszék Dr. Szirmay-Kalos László, Irányítástechnika és Informatika Tanszék
    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( "BMEVIIIAB03" , "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIIIAB03", "FELVETEL", AktualisFelev()) > 0)

    ÉS (Training.Code=("5N-A8") VAGY Training.Code=("5NAA8"))

    A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

    A kötelező előtanulmányi rendek grafikus formában itt láthatók.

    Ajánlott:

    A kötelező előzményeken túl:

    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 egyenlet. Algebrák: vektor, mátrix, komplex szám, Clifford.

     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. Eltolás, skálázás, forgatás (Rodriguez formula). Á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 é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. 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ó. 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 pontszerű testekre. 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.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.

    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.3 verzió feletti) változatát, és a GLSL árnyalónyelvet használjuk.
    10. Követelmények

    Három kisházi feladat a félév során rendre 2, 3, illetve 4 pontért, ö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, amelyekre egyenként max 2 pont adható, majd a kisházikra kapott pontokat és a jutalomkérdésekre kapott pontokat egy-egy háromdimenziós vektornak tekintjük, annak skalárszorzatát képezzük, majd az eredményt a ZH pontokhoz hozzáadjuk (azaz aki mindhárom kisháziját max pontosra készíti el, és mindhárom jutalomkérdésre max pontot kap, a ZH-n 18 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 ZH eredményhez hozzáadjuk.

    A kredit megszerzésének feltétele legalább 3 házipont összegyűjtése és a ZH-nak a jutalom kérdésekre adott pontokkal és nagyházi pontokkal együtt legalább 12 pontos teljesítése.

    11. Pótlási lehetőségek A házik nem pótolhatók. A sikertelen ZH a pótZH-n pótolható.
    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 óra 42
    Félévközi készülés órákra 9
    Felkészülés zárthelyire 12
    Házi feladat elkészítése 27
    Kijelölt írásos tananyag elsajátítása 0
    Vizsgafelkészülés 0
    Összesen 90
    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 ZH-n az 5-ös határ (24 pont) felett 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 24 pontot elér, miközben a kisházikat maximális 9 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 4, 20) = 20 IMSc pontra tehet szert.