====== OpenGL grafikus rendszer előadás jegyzetek ====== ===== Előadás anyag ===== - Bevezetés, alapok - {{tanszek:oktatas:opengl_grafikus_rendszer:opengleloadas_1.ppt}} - Viewing 1 - 2 - {{tanszek:oktatas:opengl_grafikus_rendszer:opengleloadas_2-3.ppt}} - Display lists, Színek - {{tanszek:oktatas:opengl_grafikus_rendszer:opengleloadas_4-5.ppt}} - Átlátszóság, csipkézettség, köd - {{tanszek:oktatas:opengl_grafikus_rendszer:opengleloadas_6.ppt}} - Pixelek, Bittérképek, Fontok, Képek - {{tanszek:oktatas:opengl_grafikus_rendszer:opengleloadas_7.ppt}} - Textúrák - {{tanszek:oktatas:opengl_grafikus_rendszer:opengleloadas_8.ppt}} - Framebuffer - {{tanszek:oktatas:opengl_grafikus_rendszer:opengleloadas_9.ppt}} - Selection, Feedback - {{tanszek:oktatas:opengl_grafikus_rendszer:opengleloadas_10.ppt}} - Görbék, felületek - {{tanszek:oktatas:opengl_grafikus_rendszer:opengleloadas_11.ppt}} - OpenGL és az MFC - {{tanszek:oktatas:opengl_grafikus_rendszer:opengleloadas_12.ppt}} - OpenGL kiterjesztések {{tanszek:oktatas:opengl_grafikus_rendszer:opengleloadas_13.ppt}} vizsgakérdések: {{tanszek:oktatas:opengl_grafikus_rendszer:vizsgakerdesek.doc}} ===== Gyakorlati anyag ===== - {{tanszek:oktatas:opengl_grafikus_rendszer:peldak1.zip}} - {{tanszek:oktatas:opengl_grafikus_rendszer:peldak2.zip}} - {{tanszek:oktatas:opengl_grafikus_rendszer:peldak3.zip}} - {{tanszek:oktatas:opengl_grafikus_rendszer:peldak4.zip}} - {{tanszek:oktatas:opengl_grafikus_rendszer:peldak5.zip}} - {{tanszek:oktatas:opengl_grafikus_rendszer:peldak6.zip}} - {{tanszek:oktatas:opengl_grafikus_rendszer:peldak7.zip}} - {{tanszek:oktatas:opengl_grafikus_rendszer:peldak8.zip}} - {{tanszek:oktatas:opengl_grafikus_rendszer:peldak9.zip}} - {{tanszek:oktatas:opengl_grafikus_rendszer:peldak10.zip}} - {{tanszek:oktatas:opengl_grafikus_rendszer:peldak11.zip}} - {{tanszek:oktatas:opengl_grafikus_rendszer:data.zip}} ==== Java ==== - {{tanszek:oktatas:opengl_grafikus_rendszer:jogl.zip}} - JOGL - Nehe Mintapéldák {{tanszek:oktatas:opengl_grafikus_rendszer:jogl_tutorial.zip|}} ===== Választható Feladatok ===== - Készítsen olyan demo alkalmazást, amely egy téli hóesést szimulál 3D-ben. Tetszőleges háttér, táj lehetséges. A leesett hó megmarad a tájon. Mindez egy textúrába renderelve. - Készítsen olyan demo alkalmazást, amely egy tavat ábrázol 3D-ben. Esik az eső, amely a tavon látszik(esetleg kisebb hullámokat gerjeszt). A tavon tükröződhet az égbolt, vagy a táj. Lehet rajta tárgy (pl.: békalencse). Kő bedobása a tóba viszont nagy hullámot csinál. - Készítsen olyan demo akalmazást 3D-ben, amely egy tengerpartot ábrázol, és egy tengerparti hullámzást szimulál. A víz széle mozog ki-be, hullámok, stb. A vizen tükröződik az égbolt, vagy a táj.Esetben tárgy lehet a víz felszínén, amely a hullámoknak megfelelően mozog. - Kéazítsen el a C64-es Wizard of WAR című játék demo változatát 3D-ben. A kamera forgatható legyen. Kisebb labirintus falakkal, és a megszokott C64-es játék. Vagy legalábbis hasonló. - Készítsen egyszerű Bomberman klónt. - Készítsen 3D Mahjong klónt. - Készítsen olyan demo alkalmazást, amelyben egy golyó pattogását szimulálja egy szobában, ahol tárgyak vannak. A golyó ütközhet mindennel. Esetleg fényforrás alkalmazása, amelynek hatására a golyó árnyékot vet. - Írjon egyszerű céllövölde programot. - Írjon olyan többszemélyes játékot, amelyben tankokkal kell egymást lőni 3D-ben. A golyó becsapódása sérülést okoz a talajon, azaz például besűllyed egy kicsit. - Írjon olyan programot, amely a naprendszer fő bolygóinak mozgását szimulálja. - Írjon 3D flippert. Egyszerű kivitel, lényeg a labda ütközésvizsgálatán van. - Írjon egyszerű DOOM stílusú játékot(motort), amelyben egyszerű ellenségek, tágyak ellen lehet harconli. - Készítse el a magyar zászló 3D modelljét, amit ha a szél fúj, akkor lobog. - Készítsen 3D MoonLander típusú egyszerű játékot. Forgatható kamera, gombokkal való irányítás. - Készítsen Virtual COOP típusú játékot. Egy 3D "világ", ahol a feltűnő rosszfiúkat le kell lőni. Egy egy helyszín után a kamera odébbáll egy másik helyszínre. - Készítsen neverball típusú játékot(klónt). A főszereplő egy golyó, amelyet ell kelljuttatni a célba különböző nehézségeken keresztül. Nem a golyót, hanem a tájat mozgatjuk, döltjük, és akkor gurula a golyó. - Készítsen hógolyózó játékot. A főszereplőnek egy célkereszt segítségével kell megdobálni az őt dobáló ellenségeket. - Írjon pacman 3D típusú játékot. - Készítsen tetszőleges ötlettel 3D-s "képernyővédőt". Nem kell valós képernyővédőnek lennie. - Készítsen egyszerű darts programot 3D-ben. - Készítsen 3D memória játékot. - Készítsen 3D puzzle-t. - Készítsen olyan programot, amely egy avi file-t tölt be és játsz le egy textúrába renderelve. - Készítsen akvárium "képernyő kímélőt". Fények, tükröződések, halak, stb. - Írjon egyszerű 3D Billiárd programot. - Készítsen 3D SpaceInvaders klónt. - Készítsen olyan programot, amely egy robotkar működését szimulálja 3D-ben. Tárgyak felvétele, letétele, mozgatása. - Készítsen olyan programot, amely egy football kapu hálójának mozgását szimulálja tizenegyes rúgásakor. - Írjon egyszerű repülő szimulátort. Felszállás, leszállás, stb. - Írjon olyan demo programot, amely egy tetszőleges 3D-s figura fénnyel megvilágított árnyékvetését mutatja. - Készítsen egy textúrázott féreglyukat, amelyben a kamera fut előre. - Készítsen tüzijáték "késpernyővédőt", amelyben a tüzijáték alatt üdvözlőszöveg megy 3D-ben. - Írjon kosárlabda büntető dobáló programot 3D-ben. Cél: minnél több labda a kosárba dobása. - Írjon egyszerű 3D breakout(faltörő) programot. - Készítsen 3D malom játékot. - Készítsen 3D tetrisz játékot. - Készítse el a hagyományos ütögetős játék(pong) 3D-s demo változatát. A hagyományos játék: két ütő a képernyő két ellentétes oldalán. A cél a pattogó labdát úgy ütni, hogy a másik fél ne tudja visszaütni. - Készítse el a hagyományos kígyó típusú játék 3D-s változatát. - Készítsen 3D, többszintű Star Field-et. Starfield: Olyan, mintha egy űrhajóval mennénk a csillagok között. A csillagok a képernyő jobb oldaláról haladnak a bal felé. Többszintűség: Némely csillag messzebb van a nézőponttól, így kevésbé látszik a többi mellett. Így lesz 3D-s hatású. - Készítsen olyan programot, amely egy konkrét példán keresztül mutatja be az árnyékolás lehetőségét OpenGL alatt. Pl.: Adott egy terem, ahol egy labda pattog, és közben árnyékot vet a falakra a fényforrás hatására. Feltöltés alatt!