„Számítógépes grafika” változatai közötti eltérés

A VIK Wikiből
→‎A feladatok: tutorial feljebb emelve, mert több házihoz is kapcsolódik
Nincs szerkesztési összefoglaló
 
(33 közbenső módosítás, amit 20 másik szerkesztő végzett, nincs mutatva)
1. sor: 1. sor:
{{Új_tárgy|Számítógépes grafika és képfeldolgozás}}
{{Tantárgy
{{Tantárgy
|név = Számítógépes grafika
|név = Számítógépes grafika
|tárgykód = VIIIAB03
|tárgykód = VIIIAB07
|régitárgykód = VIIIAB03
|szak = info
|szak = info
|kredit = 4
|kredit = 3
|félév = 4
|félév = 4
|kereszt =  
|kereszt = van
|tanszék = IIT
|tanszék = IIT
|jelenlét =
|kiszh = nincs
|minmunka =
|nagyzh = 1 db
|labor =
|hf = 3 db
|kiszh =  
|nagyzh = 1
|hf = 3
|vizsga = nincs
|vizsga = nincs
|levlista =  
|levlista = grafika{{kukac}}sch.bme.hu
|tárgyhonlap = http://cg.iit.bme.hu/portal/szamitogepes-grafika
|tárgyhonlap = http://cg.iit.bme.hu/portal/szamitogepes-grafika
|facebook=https://www.facebook.com/groups/grafika.cz/
}}
}}


<big><big>'''2016 tavaszi félévben indított kurzus anyagában bekövetkezett változások miatt (pl. OpenGL 2.1 -> 3.0 váltás), az alábbi anyagok jó része idejétmúlt, és az oldal teljes átdolgozásra szorul.'''</big></big>
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. A [[Számítógépes grafika és képfeldolgozás]] tárgy utódja.


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. A [[Számítógépes grafika és képfeldolgozás]] tárgy utódja.


== Követelmények ==
== Követelmények ==
27. sor: 27. sor:


===A szorgalmi időszakban===
===A szorgalmi időszakban===
*Az '''aláírás feltételei:'''
* A kari Moodle rendszerben minden témakör leadása után megnyílik az adott témakörhöz egy-egy '''kérdőív'''. Ezeknek a kérdőíveknek minimum 66%-át ki kell tölteni a tárgy telejesítéséhez, azonban ezek eredménye a tárgyba semennyire nem számít bele. Üres beadással is teljesíthetőek.
**'''Házi feladatok leadása''' 3 db házi feladat van, ebből legalább 2-t kell elkészíteni és megvédeni.
* '''3 kis házi feladat leadás''' van, ezek félévente változóan vagy fakultatívak vagy nem, ha nem, akkor általában minimum 3 pontot kell szerezni. Összesen 9 pontot lehet rájuk kapni, a felosztás régebben 3-3-3, mostanában 2-3-4 szokott lenni. Aktuális szabályokat lásd az előadásdiákon.
**'''Házi feladatok védése''' A védés arra szolgál, hogy megbizonyosodjanak róla, hogy Te írtad a beadott házijaidat. Ennek megfelelően ez nem egy vizsga a teljes anyagból, hanem a háziban alkalmazott megoldásaidat kell tudnod elmagyarázni és azzal kapcsolatban kérdésekre felelni. Ha tényleg te írtad meg a házikat, akkor ez semmilyen problémát nem jelenthet.
** A házikra nem közvetlenül kapsz pontot. A házikat el kell fogadniuk, de a pont csak akkor számít bele a jegybe, ha még "megvéded" a ZH-n a pontjaidat.
**'''ZH''' Egy '''ZH'''-t kell sikeresen megírni.
* Opcionálisan választható nagy házi feladat, 3 pontot érhet. Ennek témaköre nem lehet a kisházikkal egyező, és annál komplexebb kell legyen. Részleteket az oktatóval egyeztesd.
*'''Pótlási lehetőségek:'''
* Egy '''ZH'''-t kell sikeresen megírni (30 pontos), ebből születik a félév végi jegy.
**A házi feladatok nem pótolhatók.
** A ZH-n  a 3 kisházihoz tartozik 1-1 ellenőrző kérdés, ami a házi témaköréhez kapcsolódik. Ha ezekre a kérdésekre jól válaszolsz, a jegybe beleszámít az adott házira kapott pontod kétszerese. Ha nem jó a válaszod, nem ér semmit a HF-pontod. Viszont a ZH pontszám-felosztása miatt még így is teljesítheted a tárgyat.
**A ZH félév közben és a pótlási héten (különeljárási díj ellenében) pótolható.
 
* '''Pótlási lehetőségek:'''
** A házi feladatok nem pótolhatók, de a 9 pontból csak 3-mat kell minimálisan szerezni.
**PótZH van, általában 1 vagy 2 héttel később.
** Aláíráspótló nincs minden félévben! Ha a tantárgyi adatlapra nem írják oda, hogy lesz, akkor biztosan nem lesz. Ha nincs PPZH (vagy az se sikerülne), méltányossági kérelmet elfogadnak egy ismételt pótlási alkalomra.
 
* Előadáson, néha a ZH-n kaphatók bónuszpontok még egyéb kérdésekkel.
* Összesen 56 pont szerezhető (30 ZH + 9*2 KHF + 3*2 NHF + bónusz), de a jegyszámításnál mondhatni 32 a megszokott 100%.
 
=== Ponthatárok ===
:{| class="wikitable" style="text-align: center; width: 110px; height: 40px;"
|-
! Pont !! Jegy
|-
|0 - 11 || 1
|-
|12 - 15 || 2
|-
|16 - 19 || 3
|-
|20 - 23 || 4
|-
|24 - || 5
|}
 
== Segédanyagok ==
== Segédanyagok ==
===Jegyzet===
* [[Media:Grafika_jegyzet_elte.pdf | Szirmay által készített jegyzet]] (az ELTE hallgatói számára)
=== Előadásdiák ===
=== Előadásdiák ===
 
* [[Media:grafika_eloadasdiak_20151219_merged.pdf | 2015 őszi félév előadásdiái összefűzve]]
A tematika kis mértékben minden félévben szokott változni, így sok éves kidolgozások (lásd régi tárgy WIKI-oldala) már elavultak. Az aktuális előadásdiákat a tárgyhonlapon megtalálod. A PDF formátumnál könnyebb a jegyzetet olvasni, de a PPT-ben szemléletesebbek az animációk. Nem mindig jut idő mindegyik témakörre előadásokon.
* [[Media:grafika_foliak_2013osz_merged.pdf|2013 őszi félév fóliái összefűzve]] - néhol téglalapok vannak a szövegben, ezért olvashatatlan
 
* [[Media:Grafika_diasor_szirmayfull.pdf|Nyomtatóbarát dia összeválogatás]]
* 2019 tavaszi előadások:
* [[SzgGrafEA2010_Tavasz|2009/2010 tavaszi félév diái]]
** Alapfogalmak: [[Media:Grafika_eloadasdia_2019-tavasz_1.pdf | PDF]] - [[Media:Grafika_eloadasdia_2019-tavasz_1.pptx | PPT]]
** Geometriák és algebrák: [[Media:Grafika_eloadasdia_2019-tavasz_2.pdf | PDF]] - [[Media:Grafika_eloadasdia_2019-tavasz_2.pptx | PPT]]
** Geometriai modellezés: [[Media:Grafika_eloadasdia_2019-tavasz_3.pdf | PDF]] - [[Media:Grafika_eloadasdia_2019-tavasz_3.pptx | PPT]]
** Geometriai transzformációk: [[Media:Grafika_eloadasdia_2019-tavasz_4.pdf | PDF]] - [[Media:Grafika_eloadasdia_2019-tavasz_4.pptx | PPT]]
** 2D képszintézis: [[Media:Grafika_eloadasdia_2019-tavasz_5.pdf | PDF]] - [[Media:Grafika_eloadasdia_2019-tavasz_5.pptx | PPT]]
** Grafikus alap hw/sw: [[Media:Grafika_eloadasdia_2019-tavasz_6.pdf | PDF]] - [[Media:Grafika_eloadasdia_2019-tavasz_6.pptx | PPT]]
** 3D képszintézis optikai alapmodellje: [[Media:Grafika_eloadasdia_2019-tavasz_7.pdf | PDF]] - [[Media:Grafika_eloadasdia_2019-tavasz_7.pptx | PPT]]
** Sugárkövetés: [[Media:Grafika_eloadasdia_2019-tavasz_8.pdf | PDF]] - [[Media:Grafika_eloadasdia_2019-tavasz_8.pptx | PPT]]
** Inkrementális 3D képszintézis: [[Media:Grafika_eloadasdia_2019-tavasz_9.pdf | PDF]] - [[Media:Grafika_eloadasdia_2019-tavasz_9.pptx | PPT]]
** Animáció: [[Media:Grafika_eloadasdia_2019-tavasz_10.pdf | PDF]] - [[Media:Grafika_eloadasdia_2019-tavasz_10.pptx | PPT]]
** Számítógépes játékok: [[Media:Grafika_eloadasdia_2019-tavasz_11.pdf | PDF]] - [[Media:Grafika_eloadasdia_2019-tavasz_11.pptx | PPT]]
** Fraktálok és káosz: [[Media:Grafika_eloadasdia_2019-tavasz_12.pdf | PDF]] - [[Media:Grafika_eloadasdia_2019-tavasz_12.pptx | PPT]]
** GPGPU: [[Media:Grafika_eloadasdia_2019-tavasz_13.pdf | PDF]] - [[Media:Grafika_eloadasdia_2019-tavasz_13.pptx | PPT]]
 


=== Hallgatók által írt összefoglalók ===
=== Hallgatók által írt összefoglalók ===


* [[Számítógépes_grafika_házi_feladat_tutorial|Csala Tamás: Grafika házi tutorial, példaprogramokkal]]
* [[Számítógépes_grafika_házi_feladat_tutorial|Csala Tamás: Grafika házi tutorial, példaprogramokkal]]
* [https://docs.google.com/document/d/1MLIdbJ-OsD0Rp5auOyH10MSmHW1mC3cNcAzHICoQ3Cc/edit Google doksi a kiadott vizsgafeladatok és korábbi vizsgák megoldására]
** Ez a leírás az OpenGL régebbi változatához készült, a tárgy régi tematikája alapján. Ne ebből dolgozz, mert nem fogadják már el. Ellenben sok jó ötletet találni belle, és az elméletet is jól magyarázza.
* [https://docs.google.com/document/d/1MLIdbJ-OsD0Rp5auOyH10MSmHW1mC3cNcAzHICoQ3Cc/edit Google doksi a régi tárgyból a kiadott vizsgafeladatok és korábbi vizsgák megoldására]
* [[Grafika_hibakezelés_és_tipikus_hibák|Hibakezelés és tipikus hibák]]
* [[Grafika_hibakezelés_és_tipikus_hibák|Hibakezelés és tipikus hibák]]


=== Könyv ===  
=== Könyv ===  
 
* [[Media:Grafika_konyv_suni_2003.pdf | Háromdimenziós grafika, animáció és játékfejlesztés  2003 (sünis könyv)]]
* [[Media:Grafika_konyv_1999.pdf | Számítógépes grafika 1999 (Szirmay korábbi könyve)]]
* [[Media:Grafika_jegyzet_OpenGL.pdf|Juhász Imre: OpenGL]] (csak érdeklődőknek, ez sokkal részletesebb, mint ami a tárgyhoz kell)
* [[Media:Grafika_jegyzet_OpenGL.pdf|Juhász Imre: OpenGL]] (csak érdeklődőknek, ez sokkal részletesebb, mint ami a tárgyhoz kell)
* A tárgyhonlapon található még 1-2 könyv.


=== Videó ===
=== Videó ===
A 2009 őszi kurzusról videofelvétel készült, elérhető a [http://videotorium.hu/hu/categories/details/1083,Szamitogepes_grafika Videotorium]-on streamelve, vagy a [http://video.bme.hu/index.php?act=vid&tkod=BMEVGR régi oldalán] egyben letölthető. Egyes előadásokról nem készült felvétel (1,3,4)
* [http://bme.videotorium.hu/hu/category/1083/szamitogepes-grafika 2018 tavaszi előadások]
* [http://bme.videotorium.hu/hu/channels/901/szamitogepes-grafika-es-kepfeldolgozas Régi, 2009 évi előadás felvételek]
 


== Házik ==
== Házik ==
A tárgy arról szól, hogy ezeket meg tudod-e írni. Az első órán el szokott hangzani, hogy vagy 5-sel, vagy 1-sel szeretik értékelni a munkát, kettest csak az kap akit már sok év alatt sem sikerült megtanítani a tárgyra, de a tudása kezd körvonalazódni. Szóval ez a rész amire nagyon szükséged lesz!
A tárgy arról szól, hogy ezeket meg tudod-e írni. Az első órán el szokott hangzani, hogy vagy 5-sel, vagy 1-sel szeretik értékelni a munkát, kettest csak az kap akit már sok év alatt sem sikerült megtanítani a tárgyra, de a tudása kezd körvonalazódni. Szóval ez a rész, amelyre nagy szükséged lesz! A a házikat jól megcsinálod, a ZH sokkal egyszerűbb és könnyebb felkészülni rá, így összességében jobb jegyet kapsz.


===Előkészületek===
===Előkészületek===
Mielőtt elkezdenéd be kell lőni a fejlesztőkörnyezetet:
Mielőtt elkezdenéd, be kell lőni a fejlesztőkörnyezetet:
* [[Számítógépes grafika: OpenGL + GLUT + fejlesztőkörnyezetek]] << Ez az ajánlott olvasmány
* Visual Studio + a tárgy honlapjáról letölthető projekt template (Windows-ra)
* [[Számítógépes grafika: CLion + MinGW|CLion + MinGW + előkészített projekt]] (miden platformon megy)
* [[Számítógépes grafika: OpenGL + GLUT + fejlesztőkörnyezetek]]
** Ez a leírás a régi tárgyhoz készült. Legtöbb Windows környezeti leírása már ideje múlt. MacOS és Linux telepítési útmutató itt található.
* [https://gist.github.com/bokrosbalint/8395956efc643d9af7eea561e3d74eb7 CMake template], leginkább UNIX környezethez.


==== Külső linkek ====
Tipp: próbálj meg olyan környezetet használni, ahol szabványkövető fordítót tudsz használni, pl. CLion-t. A Visual Studio fordítója nem annyira szabványkövető, ezért sok hibával találkozhatsz a beadó portálon, még ha a saját gépeden fut is. Ez legyen fontosabb, mint hogy melyik IDE használatát szoktad meg, sok bosszankodástól megkímél a beadásnál.
* [http://mockid.net/?p=5 xCode OSX]
* [http://users.atw.hu/zelux/pub/vik/vik_cb_glut_bundle.rar Windowshoz gyorsan felrakható GLUT] -   ([http://www.sci.brooklyn.cuny.edu/~goetz/codeblocks/glut/ tutorial hozzá])


=== Tippek a házikhoz ===
=== Tippek a házikhoz ===


Érdemes mindegyik házit elfogadottra megcsinálni.  
Érdemes mindegyik házit elfogadottra megcsinálni. A házikat érdemes a kiadás napjától emészteni, és a leadás napján az a jó, ha már csak nagyon kicsi hibák vannak benne, mert a beadórendszer nagyon le tud lassulni. A határidő előtt 6 órával akárhogy áll töltsd fel, mert rossz azon elbukni 1-1 házit hogy bent maradt egy printf, csak már nem láttad az eredményt mert lejárt a határidő.
A házikat érdemes a kiadás napjától emészteni, és a leadás napján az a jó, ha már csak nagyon kicsi hibák vannak benne, mert a beadórendszer nagyon le tud lassulni. A határidő előtt 6 órával akárhogy áll töltsd fel, mert rossz azon elbukni 1-1 házit hogy bent maradt egy printf, csak már nem láttad az eredményt mert lejárt a határidő.
 
Ha a határidő előtt 1-2 nappal akarod elkezdeni a munkát, és az anyagot még nem nagyon érted, akkor bele se kezdj egyedül. A házik minden részletének igényes kidolgozása 1 teljes hetet vesz igénybe, ami alatt a többi tárggyal nem nagyon tudsz foglalkozni. Ha csak a minimális dolgok elérése a célod, ennél kevesebb idő is elég, de semmiképp nem tudsz használható programot összedobni egy délután alatt.
 
A házikat elsődlegesen azért érdemes megcsinálni, hogy tanulj vele a ZH-ra. Hidd el, rengeteget számít, ha jól megérted a dolgokat a háziknál, és nem csak összecsapod a programot, hogy kapj 1-2 pontot. A ZH feladatoknál gyakran szokott lenni gyakorlati feladat is, pl. GLSL és OpenGL-es programrészlet írás, amik könnyen megoldhatók, ha tudod, mit kell csinálni.


Ha a határidő előtt 1-2 nappal akarod elkezdeni a munkát, és az anyagot még nem nagyon érted, akkor bele se kezdj egyedül.
=== Előző házik ===
* [[Kiadott grafika házik]] - (csak feladatleírások)


=== A feladatok ===
=== A feladatok ===
78. sor: 128. sor:
A régi tárgy [[Számítógépes_grafika_és_képfeldolgozás#A_feladatok|oldalán]] rengeteg segédanyag található, ha hasznosat találsz, szúrd be a megfelelő házihoz.
A régi tárgy [[Számítógépes_grafika_és_képfeldolgozás#A_feladatok|oldalán]] rengeteg segédanyag található, ha hasznosat találsz, szúrd be a megfelelő házihoz.


* [[Számítógépes grafika házi feladat tutorial]]
* [[Számítógépes_grafika_házi_feladat_tutorial|Csala Tamás: Grafika házi tutorial]]
** Rengeteg hasznos elmélet van benne, azonban a példakódok OpenGL 2.x-ben íródtak
** Ez a leírás az OpenGL régebbi változatához készült, a tárgy régi tematikája alapján. Ne ebből dolgozz, mert nem fogadják már el. Ellenben sok jó ötletet találni belle, és az elméletet is jól magyarázza.


==== Első házi ====
==== Első házi ====
* Ez általában egy 2D-s játékprogram. Mindenféle primitív formát és görbéket kell rajzolgatni, mozgatni egy karaktert. A 3 közül ez a legegyszerűbb, mert még csak 2D-ben kell dolgoznod, de ne hidd, hogy ez is csettintésre megy. A legjobb az első háziban, hogy érezheted, mennyit kell foglalkozni vele. A kiadás idejében általában még nincs ZH időszak, a másodiknál lesz, a harmadik meg félév végén van, tehát ennek állj neki rendesen, itt lesz időd megtanulni az alapokat, játszadozni a környezettel, osztályokkal stb.
* [[Media:Grafika_jegyzet_catmull-rom.pdf‎|Catmull-Rom levezetés]]
* [[Media:Grafika_jegyzet_catmull-rom.pdf‎|Catmull-Rom levezetés]]


==== Második házi ====
==== Második házi ====
 
* A 2. házi egy 3D-s kép kirajzolásáról szól, sugárkövetésessel kell ezt-azt megjeleníteni. Elegendő CPU-n lerenderelni, többnyire 1 darab képet várnak, vagy apró animációt. Nagyon lassú tud lenni egy ilyen program a sugárkövetés menete miatt, ami a házi szempontjából nem gond, de a hibakeresést nagyon megnehezíti. Első körben értsd meg az elméletet, hogy lehetőleg helyes kódot tudj írni.
* [[Média:Grafika_tutorial_20110410_Raytracing_-_Farkas_Adam_Attila_-wolfee-_levlistarol_(rt).pdf|Sugárkövetés tutorial (by Wolfee, 2011.04.11)]] (A benne lévő kódokat semmiképp NE használjátok fel egy az egyben a házi feladatokban (ld. plágiumgyanú), az anyag csupán iránymutatás, a megértést segíti!!)
* [[Média:Grafika_tutorial_20110410_Raytracing_-_Farkas_Adam_Attila_-wolfee-_levlistarol_(rt).pdf|Sugárkövetés tutorial (by Wolfee, 2011.04.11)]] (A benne lévő kódokat semmiképp NE használjátok fel egy az egyben a házi feladatokban (ld. plágiumgyanú), az anyag csupán iránymutatás, a megértést segíti!!)
** a szerző (Farkas Ádám Attila) [https://lists.sch.bme.hu/wws/arc/grafika/2011-09/msg00052.html levlistán, 2011.09.09-én felhívta a figyelmet] Dr. Szirmay-Kalos László kóddal kapcsolatos aggályaira: ''"a pdf-fel tényleg óvatosan bánjatok, a legfőbb kifogások a Tanár Úr részéről: Kamerakezelés. én pont-szerű kamerával dolgoztam annó. na nem ez a matematikailag korrekt módja a dolognak, de a pdf-be megteszi. Színkezelés. én 0..255ös skálával dolgoztam (amikor számolni kellett vele, akkor normáltam persze), de T. Ú. azt mondta, hogy végig 0..1 tartománnyal kéne számolni."''
** a szerző (Farkas Ádám Attila) [https://lists.sch.bme.hu/wws/arc/grafika/2011-09/msg00052.html levlistán, 2011.09.09-én felhívta a figyelmet] Dr. Szirmay-Kalos László kóddal kapcsolatos aggályaira: ''"a pdf-fel tényleg óvatosan bánjatok, a legfőbb kifogások a Tanár úr részéről: Kamerakezelés. én pont-szerű kamerával dolgoztam annó. na nem ez a matematikailag korrekt módja a dolognak, de a pdf-be megteszi. Színkezelés. én 0..255ös skálával dolgoztam (amikor számolni kellett vele, akkor normáltam persze), de T. Ú. azt mondta, hogy végig 0..1 tartománnyal kéne számolni."''
**A pdf-ben a sík-egyenes metszéspont számítás hibásan szerepel, inkább vezessük le.


==== Harmadik házi ====
==== Harmadik házi ====
 
* Az utolsó kisházi is egy 3D-s feladat. Általában inkrementális módszerrel kell GPU használatával megjeleníteni a 2. házinál komplexebb animációt.
=== Védés ===
 
A házikat nem elég megírni, meg is kell tudni védeni. A védésen nagyrészt azt kell bizonyítanod, hogy a házikat tényleg te írtad, de persze emelett az anyag többi részébe is belekérdezhetnek. A védés általában a pótlási héten van. Nem mindenkit hívnak be (csak kb minden harmadik embert). Ha nem hívtak be, az olyan, mint ha minden házidat megvédted volna.
 
Tippek a védésre:
 
Védésen örülnek neki amikor megkérdezik, hogy "na melyikből kérdezhetek?", és mondod, hogy bármelyikből.
Védésre mindenképpen szedd össze az 5 házidat, és előtte legalább 1 órát tölts el a kódok felelevenítésével, mert bár akkor amikor írtad valószínű értetted, ez nem biztos hogy reflexből tudsz válaszolni 1-1 kérdésre, nem árt rákészülni picit, végül is ez egy szóbeli "vizsga".


=== Házi szépségverseny ===
=== Házi szépségverseny ===
Általában a sugárkövetéses (és néha az 5.) házira hirdetnek meg szépségversenyt, a helyezések plusz pontot érnek. A 2013 őszi félévben egy 3. helyezés 0.5, egy 2. helyezés 1, míg az első helyezettnek 1.5 elfogadott házi lett a jutalma. A versenyre egy a háziról készült youtube videóval lehet nevezni, az előadónak küldött e-maillel. A versenyeken jó helyezés eléréséhez általában a specifikáció teljesítése még nem elég, valami pluszt is tegyél bele, ha nyerni akarsz.
Régebben a szépségversenyre plusz pontokat is lehetett kapni, mostanában nincs ilyen. Ettől függetlenül ha megcsináltál egy házit, készíts róla videót, és küldd be a tárgyfelelősnek, kirakja a tárgyhonlapra.


== ZH ==
== ZH ==
 
* [[Media:Grafika_zh-feladatgyujtemeny.pdf|Feladatgyűjtemény]]
* [https://youtu.be/sFaj9yQQkRA 2018-as ZH feladat megoldása előadáson]
* A ZH a három kisházihoz tartozó 1-1 kérdésből (max 2*kisházik pontja), és 2 nagyfeladatból (2*15 pont), alkalmanként további 1-2 bónuszkérdésből áll (1-2 pontért).
** A kisházis kérdések kapcsolódnak az adott házihoz, pl. ha Bézier-görbét kért az első házi, akkor annak képlete lehet, és nem egy Catmull-Rom görbéé, ha görbe metszéspontja kellett a házihoz, akkor annak kiszámításának menete stb. Emiatt érdemes ZH előtt átolvasnod a kódodat, megnézni az elméletet, ami kellett hozzá.
** A kisházis kérdésekre az alapján kapsz pontot, hogy a ZH-s válaszod mennyit ért, és hogy a házira mennyit kaptál. Szóval ha pl. a 3. házit el se kezdted, arra nem kaphatsz pontot akkor se, ha a ZH-s kérdést jól megválaszolod.
** A nagy feladatok eléggé változóak. Szoktak lenni bizonyítások, pl. miért úgy alakul a kvaternió szorzása, ahogy, hogyan számítható ki az X transzformációs mátrix értékei. Gyakori, hogy az egyik feladat egy OpenGL/GLSL programot kell írni, mintha egy mini-házit kéne írnod. Egy alap programvázat megadnak, a lényegi részt kell behelyettesítened, kijavítani, hogy ezt-azt csináljon. Ehhez megint csak a házik elkészítése szolgál jó tanulási alapnak: könnyű emlékezni onnan, hogy kellett csinálni a dolgokat.
** Bónuszkérdések nem mindig vannak. Ezek általában 1-1 alapfogalom precíz meghatározását kérik.
* Heti rendszerességű kvíz kérdések gyűjteménye(kiegészíteni ér): https://docs.google.com/document/d/1k7gOzvxJvXdFESTenn-g-9HVq_B3M62rUi269raxuz0/edit?fbclid=IwAR1_9V4eIfC9QuKQyNLcQFX77b_dx6OOn26-paU-1kuRI2-781XHOdugaf0
   
   
== Tippek ==
== Tippek ==
* Nem lehet elégszer hangsúlyozni: csináld meg jól mindegyik házit! Szánj rá időt, semmi más nem fontos az életedben, ezen fog múlni, át tudsz-e menni a tárgyból. Ha a házikat jól megérted, a ZH már nem lesz (annyira nagyon) nagy értelmetlen zagyvaság.
   
* Sok példaprogramot adnak ki, a tárgyhonlapon megtalálod a legfrissebbeket. Ezeket viszont csak tanulásra használd fel, ne ebből induljon ki a házid. Kétségtelen, hogy át lehet alakítani a példaprogramokat működőképes házira, de abból semmit nem értesz meg, így csak időpocséklás, és ZH-n meghúznak. True story.
== Verseny ==
* '''Jól oszd be a félévben az idődet.''' Ezzel a tárggyal jóval többet kell foglalkozni, mint a kreditértéke mutat. Ha más tárgyakból is elcsúszol a dolgokkal, nem fog elég időd maradni rendesen felkészülni a grafikára, ez pedig jobban tud fájni, mint más tárgyakból a gyengébb teljesítmény. Szintén true story.
 
== Kedvcsináló ==
== Kedvcsináló ==


* Interjú Gulyás Gergellyel, aki játékfejlesztőként dolgozik saját cégében az egyetem elvégzése után, az Impulzus [https://issuu.com/impulzus/docs/impulzus_xlv_06_issuu/10 45. évfolyamának 6. számában, a 10. oldaltól] kezdve.
* A programozásnak talán ez a legélvezesebb része, hiszen amit csinálsz, annak látványos eredménye is van.
* A programozásnak talán ez a legélvezesebb része, hiszen amit csinálsz, annak látványos eredménye is van.
* A legtöbb programozóban felmerül, hogy milyen jó lenne parancssori programok helyett inkább játékot írni. Itt nem csak, hogy lehetőséged van rá, de durván erre kapod a jegyet.
* A legtöbb programozóban felmerül, hogy milyen jó lenne parancssori programok helyett inkább játékot írni. Itt nem csak, hogy lehetőséged van rá, de durván erre kapod a jegyet.
123. sor: 174. sor:


==Egyéb információk==
==Egyéb információk==
=== Angol nyelvű, többnyire nagyon részletes tutorialok érdeklődőknek ===
=== Angol nyelvű, többnyire nagyon részletes tutorialok érdeklődőknek ===


* [https://learnopengl.com/ Learn OpenGL] nagyon jól végigvezet az OpenGL fejlettebb részein is. Ha érdekelnek a részletek, extrák, effektek, a GPU kihasználása, érdemes itt nézelődnöd.
* [http://www.realtimerendering.com/raytracing/ Real-time Rendering: Ray-Tracing] Könyvféleségek, nagyon jól elmagyarázza a sugárkövetés lépéseit.
* [http://www.videotutorialsrock.com/ VideoTutorialsRock]. Hasznos kódok és tutorialok az abszolút kezdőknek. Sok képpel és magyarázattal.
* [http://www.videotutorialsrock.com/ VideoTutorialsRock]. Hasznos kódok és tutorialok az abszolút kezdőknek. Sok képpel és magyarázattal.
* [http://nehe.gamedev.net/ NeHe]. Alapmű, viszont a WinAPI-s cuccokat érdemes belőle kihagyni. A példák végén általában van GLUT-os megvalósítás is.
* [http://nehe.gamedev.net/ NeHe]. Alapmű, viszont a WinAPI-s cuccokat érdemes belőle kihagyni. A példák végén általában van GLUT-os megvalósítás is.
* [http://www.lighthouse3d.com/tutorials/opengl-short-tutorials/ Lighthouse 3D]
* [https://www.youtube.com/user/thecplusplusguy thecplusplusguy YouTube csatorna] OpenGL, SDL, GLSL, GTK+ tutorialok angolul egy magyar srác által.
 
* [https://youtu.be/dPWTZSC7PYI An Intuitive Introduction to Projective Geometry Using Linear Algebra] Alapos bevezetés a projektív geometriába, megérthetést segítő vizualizációval.
===Ajánlott olvasmányok===
 
* [[Media:Grafika_jegyzet_OpenGL.pdf|Juhász Imre: OpenGL &mdash; mobiDIÁK könyvtár, 2005.12.30.]]
* Dr. Szirmay-Kalos László, Antal György, Csonka Ferenc: Háromdimenziós grafika, animáció és játékfejlesztés &mdash; ComputerBooks, 2003 (Ez a "sünis könyv", lásd könyvrendelés lentebb)
* Dr. Szirmay-Kalos László: Számítógépes grafika &mdash; ComputerBooks, 1999
* Az előző könyv 1999-es kiadása. A fraktálokról szóló fejezet csak ebben van benne. Egyébként az új kiadást érdemes elolvasni, mert sokkal részletesebben és érthetőbben magyarázza el a dolgokat. Ingyenesen letölthető [http://www.iit.bme.hu/~szirmay/grafika/graf.pdf innen].
* Székely Vladimír: Képfeldolgozás (55067) &mdash; Műegyetemi Kiadó, 2007
 
=== Könyvrendelés (2014) ===
A kiadó szerint a könyv elfogyott, utánnyomás nem lesz!


{{Lábléc_-_Mérnök_informatikus_alapszak_2014}}
{{Lábléc_-_Mérnök_informatikus_alapszak_2014}}

A lap jelenlegi, 2023. május 29., 21:40-kori változata

Ez az új tanterv tárgya, a régiért lásd: Számítógépes grafika és képfeldolgozás


Számítógépes grafika
Tárgykód
VIIIAB07
Régi tárgykód
VIIIAB03
Általános infók
Szak
info
Kredit
3
Ajánlott félév
4
Keresztfélév
van
Tanszék
IIT
Követelmények
KisZH
nincs
NagyZH
1 db
Házi feladat
3 db
Vizsga
nincs
Elérhetőségek
Levlista
grafika@sch.bme.hu

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. A Számítógépes grafika és képfeldolgozás tárgy utódja.


Követelmények

Előtanulmányi rend

A programozás alapjai 2 tárgyból kredit megszerzése szükséges a tárgy felvételéhez.

A szorgalmi időszakban

  • A kari Moodle rendszerben minden témakör leadása után megnyílik az adott témakörhöz egy-egy kérdőív. Ezeknek a kérdőíveknek minimum 66%-át ki kell tölteni a tárgy telejesítéséhez, azonban ezek eredménye a tárgyba semennyire nem számít bele. Üres beadással is teljesíthetőek.
  • 3 kis házi feladat leadás van, ezek félévente változóan vagy fakultatívak vagy nem, ha nem, akkor általában minimum 3 pontot kell szerezni. Összesen 9 pontot lehet rájuk kapni, a felosztás régebben 3-3-3, mostanában 2-3-4 szokott lenni. Aktuális szabályokat lásd az előadásdiákon.
    • A házikra nem közvetlenül kapsz pontot. A házikat el kell fogadniuk, de a pont csak akkor számít bele a jegybe, ha még "megvéded" a ZH-n a pontjaidat.
  • Opcionálisan választható nagy házi feladat, 3 pontot érhet. Ennek témaköre nem lehet a kisházikkal egyező, és annál komplexebb kell legyen. Részleteket az oktatóval egyeztesd.
  • Egy ZH-t kell sikeresen megírni (30 pontos), ebből születik a félév végi jegy.
    • A ZH-n a 3 kisházihoz tartozik 1-1 ellenőrző kérdés, ami a házi témaköréhez kapcsolódik. Ha ezekre a kérdésekre jól válaszolsz, a jegybe beleszámít az adott házira kapott pontod kétszerese. Ha nem jó a válaszod, nem ér semmit a HF-pontod. Viszont a ZH pontszám-felosztása miatt még így is teljesítheted a tárgyat.
  • Pótlási lehetőségek:
    • A házi feladatok nem pótolhatók, de a 9 pontból csak 3-mat kell minimálisan szerezni.
    • PótZH van, általában 1 vagy 2 héttel később.
    • Aláíráspótló nincs minden félévben! Ha a tantárgyi adatlapra nem írják oda, hogy lesz, akkor biztosan nem lesz. Ha nincs PPZH (vagy az se sikerülne), méltányossági kérelmet elfogadnak egy ismételt pótlási alkalomra.
  • Előadáson, néha a ZH-n kaphatók bónuszpontok még egyéb kérdésekkel.
  • Összesen 56 pont szerezhető (30 ZH + 9*2 KHF + 3*2 NHF + bónusz), de a jegyszámításnál mondhatni 32 a megszokott 100%.

Ponthatárok

Pont Jegy
0 - 11 1
12 - 15 2
16 - 19 3
20 - 23 4
24 - 5

Segédanyagok

Jegyzet

Előadásdiák

A tematika kis mértékben minden félévben szokott változni, így sok éves kidolgozások (lásd régi tárgy WIKI-oldala) már elavultak. Az aktuális előadásdiákat a tárgyhonlapon megtalálod. A PDF formátumnál könnyebb a jegyzetet olvasni, de a PPT-ben szemléletesebbek az animációk. Nem mindig jut idő mindegyik témakörre előadásokon.


Hallgatók által írt összefoglalók

Könyv

Videó


Házik

A tárgy arról szól, hogy ezeket meg tudod-e írni. Az első órán el szokott hangzani, hogy vagy 5-sel, vagy 1-sel szeretik értékelni a munkát, kettest csak az kap akit már sok év alatt sem sikerült megtanítani a tárgyra, de a tudása kezd körvonalazódni. Szóval ez a rész, amelyre nagy szükséged lesz! A a házikat jól megcsinálod, a ZH sokkal egyszerűbb és könnyebb felkészülni rá, így összességében jobb jegyet kapsz.

Előkészületek

Mielőtt elkezdenéd, be kell lőni a fejlesztőkörnyezetet:

Tipp: próbálj meg olyan környezetet használni, ahol szabványkövető fordítót tudsz használni, pl. CLion-t. A Visual Studio fordítója nem annyira szabványkövető, ezért sok hibával találkozhatsz a beadó portálon, még ha a saját gépeden fut is. Ez legyen fontosabb, mint hogy melyik IDE használatát szoktad meg, sok bosszankodástól megkímél a beadásnál.

Tippek a házikhoz

Érdemes mindegyik házit elfogadottra megcsinálni. A házikat érdemes a kiadás napjától emészteni, és a leadás napján az a jó, ha már csak nagyon kicsi hibák vannak benne, mert a beadórendszer nagyon le tud lassulni. A határidő előtt 6 órával akárhogy áll töltsd fel, mert rossz azon elbukni 1-1 házit hogy bent maradt egy printf, csak már nem láttad az eredményt mert lejárt a határidő.

Ha a határidő előtt 1-2 nappal akarod elkezdeni a munkát, és az anyagot még nem nagyon érted, akkor bele se kezdj egyedül. A házik minden részletének igényes kidolgozása 1 teljes hetet vesz igénybe, ami alatt a többi tárggyal nem nagyon tudsz foglalkozni. Ha csak a minimális dolgok elérése a célod, ennél kevesebb idő is elég, de semmiképp nem tudsz használható programot összedobni egy délután alatt.

A házikat elsődlegesen azért érdemes megcsinálni, hogy tanulj vele a ZH-ra. Hidd el, rengeteget számít, ha jól megérted a dolgokat a háziknál, és nem csak összecsapod a programot, hogy kapj 1-2 pontot. A ZH feladatoknál gyakran szokott lenni gyakorlati feladat is, pl. GLSL és OpenGL-es programrészlet írás, amik könnyen megoldhatók, ha tudod, mit kell csinálni.

Előző házik

A feladatok

A régi tárgy oldalán rengeteg segédanyag található, ha hasznosat találsz, szúrd be a megfelelő házihoz.

  • Csala Tamás: Grafika házi tutorial
    • Ez a leírás az OpenGL régebbi változatához készült, a tárgy régi tematikája alapján. Ne ebből dolgozz, mert nem fogadják már el. Ellenben sok jó ötletet találni belle, és az elméletet is jól magyarázza.

Első házi

  • Ez általában egy 2D-s játékprogram. Mindenféle primitív formát és görbéket kell rajzolgatni, mozgatni egy karaktert. A 3 közül ez a legegyszerűbb, mert még csak 2D-ben kell dolgoznod, de ne hidd, hogy ez is csettintésre megy. A legjobb az első háziban, hogy érezheted, mennyit kell foglalkozni vele. A kiadás idejében általában még nincs ZH időszak, a másodiknál lesz, a harmadik meg félév végén van, tehát ennek állj neki rendesen, itt lesz időd megtanulni az alapokat, játszadozni a környezettel, osztályokkal stb.
  • Catmull-Rom levezetés

Második házi

  • A 2. házi egy 3D-s kép kirajzolásáról szól, sugárkövetésessel kell ezt-azt megjeleníteni. Elegendő CPU-n lerenderelni, többnyire 1 darab képet várnak, vagy apró animációt. Nagyon lassú tud lenni egy ilyen program a sugárkövetés menete miatt, ami a házi szempontjából nem gond, de a hibakeresést nagyon megnehezíti. Első körben értsd meg az elméletet, hogy lehetőleg helyes kódot tudj írni.
  • Sugárkövetés tutorial (by Wolfee, 2011.04.11) (A benne lévő kódokat semmiképp NE használjátok fel egy az egyben a házi feladatokban (ld. plágiumgyanú), az anyag csupán iránymutatás, a megértést segíti!!)
    • a szerző (Farkas Ádám Attila) levlistán, 2011.09.09-én felhívta a figyelmet Dr. Szirmay-Kalos László kóddal kapcsolatos aggályaira: "a pdf-fel tényleg óvatosan bánjatok, a legfőbb kifogások a Tanár úr részéről: Kamerakezelés. én pont-szerű kamerával dolgoztam annó. na nem ez a matematikailag korrekt módja a dolognak, de a pdf-be megteszi. Színkezelés. én 0..255ös skálával dolgoztam (amikor számolni kellett vele, akkor normáltam persze), de T. Ú. azt mondta, hogy végig 0..1 tartománnyal kéne számolni."
    • A pdf-ben a sík-egyenes metszéspont számítás hibásan szerepel, inkább vezessük le.

Harmadik házi

  • Az utolsó kisházi is egy 3D-s feladat. Általában inkrementális módszerrel kell GPU használatával megjeleníteni a 2. házinál komplexebb animációt.

Házi szépségverseny

Régebben a szépségversenyre plusz pontokat is lehetett kapni, mostanában nincs ilyen. Ettől függetlenül ha megcsináltál egy házit, készíts róla videót, és küldd be a tárgyfelelősnek, kirakja a tárgyhonlapra.

ZH

  • Feladatgyűjtemény
  • 2018-as ZH feladat megoldása előadáson
  • A ZH a három kisházihoz tartozó 1-1 kérdésből (max 2*kisházik pontja), és 2 nagyfeladatból (2*15 pont), alkalmanként további 1-2 bónuszkérdésből áll (1-2 pontért).
    • A kisházis kérdések kapcsolódnak az adott házihoz, pl. ha Bézier-görbét kért az első házi, akkor annak képlete lehet, és nem egy Catmull-Rom görbéé, ha görbe metszéspontja kellett a házihoz, akkor annak kiszámításának menete stb. Emiatt érdemes ZH előtt átolvasnod a kódodat, megnézni az elméletet, ami kellett hozzá.
    • A kisházis kérdésekre az alapján kapsz pontot, hogy a ZH-s válaszod mennyit ért, és hogy a házira mennyit kaptál. Szóval ha pl. a 3. házit el se kezdted, arra nem kaphatsz pontot akkor se, ha a ZH-s kérdést jól megválaszolod.
    • A nagy feladatok eléggé változóak. Szoktak lenni bizonyítások, pl. miért úgy alakul a kvaternió szorzása, ahogy, hogyan számítható ki az X transzformációs mátrix értékei. Gyakori, hogy az egyik feladat egy OpenGL/GLSL programot kell írni, mintha egy mini-házit kéne írnod. Egy alap programvázat megadnak, a lényegi részt kell behelyettesítened, kijavítani, hogy ezt-azt csináljon. Ehhez megint csak a házik elkészítése szolgál jó tanulási alapnak: könnyű emlékezni onnan, hogy kellett csinálni a dolgokat.
    • Bónuszkérdések nem mindig vannak. Ezek általában 1-1 alapfogalom precíz meghatározását kérik.
  • Heti rendszerességű kvíz kérdések gyűjteménye(kiegészíteni ér): https://docs.google.com/document/d/1k7gOzvxJvXdFESTenn-g-9HVq_B3M62rUi269raxuz0/edit?fbclid=IwAR1_9V4eIfC9QuKQyNLcQFX77b_dx6OOn26-paU-1kuRI2-781XHOdugaf0

Tippek

  • Nem lehet elégszer hangsúlyozni: csináld meg jól mindegyik házit! Szánj rá időt, semmi más nem fontos az életedben, ezen fog múlni, át tudsz-e menni a tárgyból. Ha a házikat jól megérted, a ZH már nem lesz (annyira nagyon) nagy értelmetlen zagyvaság.
  • Sok példaprogramot adnak ki, a tárgyhonlapon megtalálod a legfrissebbeket. Ezeket viszont csak tanulásra használd fel, ne ebből induljon ki a házid. Kétségtelen, hogy át lehet alakítani a példaprogramokat működőképes házira, de abból semmit nem értesz meg, így csak időpocséklás, és ZH-n meghúznak. True story.
  • Jól oszd be a félévben az idődet. Ezzel a tárggyal jóval többet kell foglalkozni, mint a kreditértéke mutat. Ha más tárgyakból is elcsúszol a dolgokkal, nem fog elég időd maradni rendesen felkészülni a grafikára, ez pedig jobban tud fájni, mint más tárgyakból a gyengébb teljesítmény. Szintén true story.

Kedvcsináló

  • Interjú Gulyás Gergellyel, aki játékfejlesztőként dolgozik saját cégében az egyetem elvégzése után, az Impulzus 45. évfolyamának 6. számában, a 10. oldaltól kezdve.
  • A programozásnak talán ez a legélvezesebb része, hiszen amit csinálsz, annak látványos eredménye is van.
  • A legtöbb programozóban felmerül, hogy milyen jó lenne parancssori programok helyett inkább játékot írni. Itt nem csak, hogy lehetőséged van rá, de durván erre kapod a jegyet.

Mottók:

  • A terroristák manapság főleg OpenGL függvényeket lopnak. Abban van az igazi biznisz.
  • Az Avatar című animációs film már állítólag majdnem megajánlott 4-est ért, de sajnos nem volt mellé kész a négy házi feladat.
  • Bal kezünk a billentyűzeten, jobb kezünkben az egér, a lábunk között meg szorongatjuk a joystickot.
  • "Ha azt kérdeznénk önöktől vizsgán, amit előadáson elmondunk, akkor önök nem a Műszaki Egyetemre járnának, hanem a Színművészeti Főiskolára."

Egyéb információk

Angol nyelvű, többnyire nagyon részletes tutorialok érdeklődőknek


Bevezetők
1. félév
2. félév
3. félév
4. félév
5. félév
6. félév
7. félév