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

A VIK Wikiből
Ugrás a navigációhoz Ugrás a kereséshez
a (Félkövérre vettem a egy részt, hangsúlyozva a fontosságát)
 
(14 közbenső módosítás, amit 9 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 1.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===
*'''Házi feladatok leadása''' 3 db házi feladat van, ezek idei félévben (2016/2017/1) fakultatívak.
+
* '''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, ebből születik a félév végi jegy.
+
* 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===
 
===Jegyzet===
 
* [[Media:Grafika_jegyzet_elte.pdf | Szirmay által készített jegyzet]] (az ELTE hallgatói számára)
 
* [[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_diak_2017tavasz_pdf.zip | 2017 tavaszi félév előadásfóliái PDF formátumban]]
+
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:Graf-merged.compressed.pdf | 2016 tavaszi félév előadásdiái összefűzve, megjegyzésekkel együtt]]
+
 
* [[Media:grafika_eloadasdiak_20151219_merged.pdf | 2015 őszi félév előadásdiái összefűzve]]
+
* 2019 tavaszi előadások:
* [[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
+
** Alapfogalmak: [[Media:Grafika_eloadasdia_2019-tavasz_1.pdf | PDF]] - [[Media:Grafika_eloadasdia_2019-tavasz_1.pptx | PPT]]
* [[Media:Grafika_diasor_szirmayfull.pdf|Nyomtatóbarát dia összeválogatás]]
+
** Geometriák és algebrák: [[Media:Grafika_eloadasdia_2019-tavasz_2.pdf | PDF]] - [[Media:Grafika_eloadasdia_2019-tavasz_2.pptx | PPT]]
* [[SzgGrafEA2010_Tavasz|2009/2010 tavaszi félév diái]]
+
** 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:
* Visual Studio + a tárgy honlapjáról letölthető projekt template
+
* 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]]
+
* [[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 az ajánlott olvasmány, a régi tárgyhoz készült, de lehet még használható
+
* [[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.
* [https://gist.github.com/bokrosbalint/8395956efc643d9af7eea561e3d74eb7 Grafházi CMake template]
 
  
 
=== 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 ===
82. sor: 127. 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.
 
**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.
127. sor: 173. 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://www.youtube.com/user/thecplusplusguy thecplusplusguy YouTube csatorna] OpenGL, SDL, GLSL, GTK+ tutorialok angolul egy magyar srác által.
 
===Ajánlott olvasmányok===
 
 
* [[Media:Grafika_jegyzet_OpenGL.pdf|Juhász Imre: OpenGL &mdash; mobiDIÁK könyvtár, 2005.12.30.]]
 
* [http://sirkan.iit.bme.hu/~szirmay/3Dgraf.pdf 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".)]
 
* [http://sirkan.iit.bme.hu/~szirmay/grafika/graf.pdf 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.
 
* 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! Az elektronikus példány viszont a fenti linken, valamint a tárgy honlapjáról ingyenesen letölthető.
 
  
 
{{Lábléc_-_Mérnök_informatikus_alapszak_2014}}
 
{{Lábléc_-_Mérnök_informatikus_alapszak_2014}}

A lap jelenlegi, 2021. június 12., 10:18-kori változata

Sablon csonk.pngEz 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

  • 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

  • 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.
  • Real-time Rendering: Ray-Tracing Könyvféleségek, nagyon jól elmagyarázza a sugárkövetés lépéseit.
  • VideoTutorialsRock. Hasznos kódok és tutorialok az abszolút kezdőknek. Sok képpel és magyarázattal.
  • 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.
  • thecplusplusguy YouTube csatorna OpenGL, SDL, GLSL, GTK+ tutorialok angolul egy magyar srác által.


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