Számítógépes grafika
A tárgy a grafikus rendszerek működését és matematikáját mutatja be az OpenGL egy leegyszerűsített framework-jén keresztül. A tárgy során sok féle technikákat és algoritmusokat mutat be két- és három dimenziós grafikus megjelenítéshez.
Ez az új tanterv tárgya, a régiért lásd: Számítógépes grafika (régi)
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 kvíz. Ezekből a kérdőívekből szerezhető pontok összesen legalább 40%-ot el kell érni.
- Az öt féléves háziból legalább három elkészítése és JPortán sikeres leadása
- A házikat JPorta autómatikusan kiértékeli, de gyakran manuálisan is felül vannak ellenőrizve és plágium ellen is tesztelve vannak.
- Opcionálisan választható és elkészíthető egy nagy házi feladat. Ennek témaköre nem lehet a kisházikkal egyező, és annál komplexebb kell legyen. Részleteket az oktatóval egyeztesd.
- Megajánlott jegy nincs.
Vizsga időszakban
- Írásbeli vizsga sikeres teljesítése.
- A vizsgán van minden házi feladathoz egy-egy "bónusz" kérdés. A bónusz kérdésre kapott pontszám a "laborpontok vektorának és a bónuszkérdésekre kapott értékelés vektorának skaláris szorzata" - azaz csak akkor kapható rá pont ha az adott házi feladat sikeresen le lett adva.
Ponthatárok
A félév végi jegy a kapott pontok összegéből adódik. Maximálisan szerezhető pontok: - 30 pont Vizsga - 10 pont Bónusz feladatok - 6 pont nagyházi
| Pont | Jegy |
|---|---|
| 0 - 11 | 1 |
| 12 - 15 | 2 |
| 16 - 19 | 3 |
| 20 - 23 | 4 |
| 24 - | 5 |
iMSc pontok
Az ötös ponthatár (24 pont) feletti pontok kétszerese, de legfeljebb 25 pont, iMSc pontként meg van adva. A tárgyból legfeljebb 46 pont szerezhető, de 37 ponttal már maximális iMSc pont szerezhető.
Segédanyagok
Az aktuális előadás diák és segéd/keret/példa programok mindig elérhetőek a tárgy moodle felületén.
Jegyzet
- Szirmay által készített jegyzet (az ELTE hallgatói számára)
Hallgatók által írt összefoglalók
- VIK CE Notes (hallgatók által készített feldolgozott jegyzet)
- 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 házifeladatok megoldásához a kiadott OpenGL framework alapján kell dolgozni, mivel a JPorta is azzal fogja futtatni. Azonban a JPortán található framework részben eltér a kiadottól, így néhány függvény vagy osztályt újra kellhet implementálni.
A félév során minden héten van opcionális labor, ahova konzultáció jelleggel be lehet járni és kérdezni az aktuális házival kapcsolatban. Itt nem fogják helyetted megcsinálni, de ha elakadtál, akkor érdemes lehet kérdezni. Tárgyfelvételnél két kurzus van és az órarendben kéthetente jelennek meg a laborok, de általában bármelyikre be lehet menni.
A házik teszteléséhez és debuggolásához érdemes használni a RenderDoc programot ami meg tudja mutatni a GPU aktuális állapotát egy-egy frame-en.
Tippek
- Nem lehet elégszer hangsúlyozni: csináld meg jól (lehetőleg) mindegyik házit! Szánj rá időt, és ne utolsó pillanatban kezd el! Ezek sokáig fognak tartani, mert nehezek és sokat kell gondolkodni rajtuk.
- Sok példaprogramot adnak ki, moodleben megtalálod a legfrissebbeket. Csábító lehet a házikat ez alapján megírni, viszont ez csalóka. A nehezát ugyan megcsinálja neked, viszont abból semmit nem értesz meg, így a vizsgára újra tanulhatod meg ami már sokkal nehezebb lesz mint tapasztalat alapján megérteni.
- 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.
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 | |