„Számítógépes grafika” változatai közötti eltérés
a infobox piszkálás |
Nincs szerkesztési összefoglaló |
||
(38 közbenső módosítás, amit 22 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 = | |kredit = 3 | ||
|félév = 4 | |félév = 4 | ||
|kereszt = | |kereszt = van | ||
|tanszék = IIT | |tanszék = IIT | ||
|kiszh = nincs | |||
|nagyzh = 1 db | |||
|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/ | |||
}} | }} | ||
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 == | ||
25. sor: | 27. sor: | ||
===A szorgalmi időszakban=== | ===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. | ||
*'''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. | ||
** | |||
* '''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: | 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: | |||
* [[Media: | * 2019 tavaszi előadások: | ||
* [[ | ** 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ó === | ||
* [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 | 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]] | * 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. | |||
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 === | === 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. | |||
=== Előző házik === | |||
* [[Kiadott grafika házik]] - (csak feladatleírások) | |||
=== A feladatok === | === A feladatok === | ||
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|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 ==== | ==== 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]] | |||
==== 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!!) | |||
** 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. | |||
=== Házi szépségverseny === | === 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 == | == 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. | |||
* '''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. | ||
115. 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. | ||
* [ | * [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. | |||
* | |||
{{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
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
- Szirmay által készített jegyzet (az ELTE hallgatói számára)
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.
- 2019 tavaszi előadások:
- Alapfogalmak: PDF - PPT
- Geometriák és algebrák: PDF - PPT
- Geometriai modellezés: PDF - PPT
- Geometriai transzformációk: PDF - PPT
- 2D képszintézis: PDF - PPT
- Grafikus alap hw/sw: PDF - PPT
- 3D képszintézis optikai alapmodellje: PDF - PPT
- Sugárkövetés: PDF - PPT
- Inkrementális 3D képszintézis: PDF - PPT
- Animáció: PDF - PPT
- Számítógépes játékok: PDF - PPT
- Fraktálok és káosz: PDF - PPT
- GPGPU: PDF - PPT
Hallgatók által írt összefoglalók
- Csala Tamás: Grafika házi tutorial, példaprogramokkal
- 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.
- Google doksi a régi tárgyból a kiadott vizsgafeladatok és korábbi vizsgák megoldására
- Hibakezelés és tipikus hibák
Könyv
- Háromdimenziós grafika, animáció és játékfejlesztés 2003 (sünis könyv)
- Számítógépes grafika 1999 (Szirmay korábbi könyve)
- 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ó
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:
- Visual Studio + a tárgy honlapjáról letölthető projekt template (Windows-ra)
- 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ó.
- CMake template, leginkább UNIX környezethez.
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
- Kiadott grafika házik - (csak feladatleírások)
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.
- 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.
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 |