| Csernetics László |
[
Home |
CV
| Scientific
work
| Teaching
| Software
| Photo gallery |
Links | CUNY
mirror
] |
Számítógépes grafika gyakorlat 06/07 ősz
Általános tudnivalók a gyakorlattal kapcsolatban
Gyakorlatok időpontjai és helyei:
|
Hétfő |
12-13 |
IR222 |
| 13-14 | IR223 | |
|
14-15 |
IR223 | |
|
17-18 |
IR226 | |
| 18-19 | IR226 | |
| Kedd | 12-13 | IR224 |
| 13-14 | IR224 | |
| 17-18 | IR222 | |
| 18-19 | IR222 | |
| Szerda | 9-10 | IR224 |
| 10-11 | IR224 |
Fogadóóra:
Hétfő 15-16, egyelőre a demonstrátori szobában, az Árpád tér 2. alatt, a 2. emeleten.
Egyéb elérhetőségem: cslaszlo@inf.u-szeged.hu
Általános tudnivalók nappalisoknak (kurzuskód, kredit, tematika, ajánlott irodalom, a teljesítés feltételei):
http://www.inf.u-szeged.hu/oktatas/kurzusleirasok/I504.xml
Kötelező programok specifikációi nappalisoknak:
Kötelező
feladat I:
A feladat: a saját szoba 3D-s modelljének megvalósítása OpenGL-ben a következőképpen:
- a tantárgyi követelményekben leírtaknak megfeleljen:
Legalább 2 különböző 3D-s objektum egymástól független mozgása,
interaktivitás (szoba forgatása ÉS billentyű lenyomásra objektumok mozgatása) 3D transzformáció segítségével,
szöveg megjelenítés (saját név, szak, tanév)
- legalább 3 komplex (legalább 5 testből álló) tárgy megvalósítása (pl: ágy, asztal, szekrény)
- a tárgyak egy sík lapon legyenek elhelyezve (padló)
- menü készítése (drótvázas és kitöltött közötti váltás)
Plusz pont a következő esetekben szerezhető:
- igényes kivitelezésű (megjelenés és kódolás),
- speciális GLUT függvények (pl. overlay, több ablak használata, ablak felosztása, stb.),
- parametrikus felszín,
- deformálható objektum,
- tükröződés,
- speciális effektek,
- vetett árnyék.
A kötelező feladat beadásának módja:
- Linux operációs rendszer alatt
Készíts egy könyvtárat, amelynek neve a saját neved, ékezetek nélkül (pl.: CserneticsLaszlo).
Ebbe
a könyvtárba másold be a szükséges forrás file-okat (.c, .cxx, .h), és a
Makefile-t, FUTTATHATÓ ÁLLOMÁNYT NE!
Csomagold be a könyvtárat úgy, hogy a tömörített állományban szerepeljen a könyvtár információ is (kicsomagoláskor automatikusan létrejöjjön egy alkönyvtár, és abban a kért file-ok). Javaslom a zip parancs használatát (pl.: zip -r CserneticsLaszlo.zip CserneticsLaszlo/).
A file neve jelezze azt is, hogy Linux-os a program (pl.: CserneticsLaszlo_linux.zip).
- Ezt a tömörített állományt töltsd fel a biro-ra!
Beküldendő: október 15. 23:59:59-ig.
Kötelező
feladat II:
A feladat (az I. kötelező feladat folytatása):
- a tantárgyi követelményekben leírtaknak megfeleljen:
megvilágítás,
textúra (a tárgyaknak megfelelő textúrák használata),
átlátszóság (legalább egy tárgy),
köd
- legalább +1 (komplex) tárgy megvalósítása (az előző kötelező feladathoz képest)- az alap fény (ambiens) fénybeállításon túl legalább 2 különböző fényforrás megvalósítása (általános diffúz fény + egy spekuláris fény)
Plusz pont a következő esetekben szerezhető:
- igényes kivitelezésű (megjelenés és kódolás),
- speciális GLUT függvények (pl. overlay, több ablak használata, ablak felosztása, stb.),
- parametrikus felszín,
- deformálható objektum,
- tükröződés,
- speciális effektek,
- vetett árnyék.
A kötelező feladat beadásának módja:
- Linux operációs rendszer alatt
Készíts egy könyvtárat, amelynek neve a saját neved, ékezetek nélkül (pl.: CserneticsLaszlo).
Ebbe
a könyvtárba másold be a szükséges forrás file-okat (.c, .cxx, .h), és a
Makefile-t, FUTTATHATÓ ÁLLOMÁNYT NE!
Csomagold be a könyvtárat úgy, hogy a tömörített állományban szerepeljen a könyvtár információ is (kicsomagoláskor automatikusan létrejöjjön egy alkönyvtár, és abban a kért file-ok). Javaslom a zip parancs használatát (pl.: zip -r CserneticsLaszlo.zip CserneticsLaszlo/).
A file neve jelezze azt is, hogy Linux-os a program (pl.: CserneticsLaszlo_linux.zip).
- Ezt a tömörített állományt töltsd fel a biro-ra!
Beküldendő: december 3. 23:59:59-ig.
A feladatokat a biro rendszer segítségével kell beküldeni. Ehhez regisztrálni kell a biro-ba, majd www.inf.u-szeged.hu/biro oldalon beléphetsz a rendszerbe. Itt megtekintheted a pontos feladatkiírást (feladat bővíthetőség plusz-pontért megtalálható), beleértve a beküldendő állomány elkészítési módját (zip specifikáció), továbbá feltöltheted az elkészített állományt. Egy feltöltési lehetőség van, úgyhogy a véglegesnek ítélt programmal érdemes próbálkozni.
Zárthelyi dolgozatok specifikációi nappalisoknak:
1. Zh: október 16-20 héten
Zh feladatok:
1. Fordulatszámmérő
2. Kilóméter óra
3. Óra
4. Propeller
5. Metronóm 1
6. Inga 1
7. Kerék
8. Iránytű
9. Metronóm 2
10. Inga 2
11. Helikopter
12. Szitakötő
2. Zh: december 4-8 héten
Zh alapfeladatok (szükséges a bitmap.h és bitmap.c a fordításukhoz):
1. Fordulatszámmérő:
alapZH2_feladat1.c Makefile
2. Kilóméter óra:
alapZH2_feladat2.c Makefile
3. Óra:
alapZH2_feladat3.c Makefile
4. Propeller:
alapZH2_feladat4.c Makefile
5. Metronóm 1:
alapZH2_feladat5.c Makefile
6. Inga 1:
alapZH2_feladat6.c Makefile
7. Kerék:
alapZH2_feladat7.c Makefile
8. Iránytű:
alapZH2_feladat8.c Makefile
9. Metronóm 2:
alapZH2_feladat9.c Makefile
10. Inga 2:
alapZH2_feladat10.c Makefile
11. Helikopter:
alapZH2_feladat11.c Makefile
12. Szitakötő:
alapZH2_feladat12.c Makefile
Mind a kötelező programok, mind a ZH-k eredményeit a saját csoportodhoz kapcsolt link alatt találod meg. (Az eredmények feltöltése folyamatos lesz, legyetek türelmesek!)
1. OpenGL alapprogram (vázprogram):
2. Teáskanna kirajzolása (glut kínálta magasszintű objektum):
3. Pontok kirajzolása:
4. Kölünböző méretű pontok kirajzolása:
5. Egyenesek kirajzolása:
6. Kölünböző vastagságú egyenesek kirajzolása:
7. Kölünböző típusú egyenesek kirajzolása:
8. Háromszögek kirajzolása:
9. Egyenes rajzolása a felezőpont algoritmussal:
feladat leírása MidpointLine1.c Makefile
10. Szabályos sokszögek közelítése vonal-csík segítségével:
feladat leírása circleapprox.c Makefile
11. Tüzijáték készítése:
feladat leírása fireworks.c Makefile
12. Poligonok kitöltése:
13. Nem konvex poligonok előállítása:
14. GLUT magasabbszintű objektumok:
Függvények leírása - http://www.opengl.org/resources/libraries/glut/spec3/node80.html
15. Időzítés, mátrix vermek, transzformációk:
16. Párhuzamos és perspektív vetítés:
17. Nap, Föld és Hold modellezése:
18. Oszlop rajzolása (csonkakúpok segítségével):
19. Tank forgatható csővel:
20. Kocka készítése a megadott specifikáció szerint:
feladat leírása cube.c Makefile
21. Betűkészítés illusztrációja:
22. Dobókocka készítése:
23. Próba ZH:
probaZH.pdf probaZH.c Makefile
24. Ambiens fény:
25. Jet alapprogram:
26. Jet megvilágítással:
27. Jet tükröződő fényhatással:
28. Reflektor illusztrációja:
29. Átlátszó kocka:
30. Kocka ködben:
31. Megvilágított háromszög készítése, látható normálisokkal:
feladat leírása haromszog.c Makefile
32. Megvilágított kocka készítése, látható normálisokkal:
feladat leírása kocka.c Makefile
33. Megvilágított hengerpalást:
34. Textúrázott teáskanna:
35. Több textúra egy négyzeten:
BTex.c Makefile WOOL.bmp MARBLE.bmp WOOD.bmp
36. Kör-alakú textúra:
37. Kúp-palást textúra:
kupTextura.c Makefile texture.h texture.c kup_textura2.bmp
38. Füves terep-textúra:
terrain1.c Makefile texture.h texture.c land.bmp sky.bmp
39. Próba ZH 2:
probaZH2.pdf probaZH2alap.c probaZH2.c Makefile BRONZE.bmp TILE.bmp
Az órákon használt PPT prezentáció PDF formátumban letölthető az alábbi linkről:
Geometriai primitívek létrehozását illusztráló tutorial program Nate Robins-tól:
Windows-ra shapes.exe glut32.dll
Linux-ra /pub/szgrafika/szamitogepes_grafika/Tutors.linux/shapes
Geometriai transzformációkat illusztráló tutorial program Nate Robins-tól:
Windows-ra (nem futtatható helyből) transformation.zip
Linux-ra /pub/szgrafika/szamitogepes_grafika/Tutors.linux/transformation
Viewing és vetítési transzformációkat illusztráló tutorial program Nate Robins-tól:
Windows-ra (nem futtatható helyből) projection.zip
Linux-ra /pub/szgrafika/szamitogepes_grafika/Tutors.linux/projection
Fény- és anyagtulajdonságok beállítását illusztráló tutorial program Nate Robins-tól:
Windows-ra (nem futtatható helyből) lightmaterial.zip
Linux-ra /pub/szgrafika/szamitogepes_grafika/Tutors.linux/lightmaterial
Fényforrás és kamera pozícionálását illusztráló tutorial program Nate Robins-tól:
Windows-ra (nem futtatható helyből) lightposition.zip
Linux-ra /pub/szgrafika/szamitogepes_grafika/Tutors.linux/lightposition
Köd effektus beállítását illusztráló tutorial program Nate Robins-tól:
Windows-ra (nem futtatható helyből) fog.zip
Linux-ra /pub/szgrafika/szamitogepes_grafika/Tutors.linux/fog
Textúrázást illusztráló tutorial program Nate Robins-tól:
Windows-ra (nem futtatható helyből) texture.zip
Linux-ra /pub/szgrafika/szamitogepes_grafika/Tutors.linux/texture
Kibővített OpenGL alapprogramok, eseményekre és interaktivitásra felkészítve:
2D-s OpenGL program készítéséhez használd ezt (párhuzamos vetítés) alap2D.c
3D-s OpenGL program készítéséhez használd ezt (perspektív vetítés) alap3D.c
alap3D.c + Mélységellenőrzés + Keyboard + Timer + Idle + Kamera alap3D_2.c
alap3D_2.c + Menükezelés alap3D_3.c
ZH-alapprogram, alap3D_3.c módosítása, mely tartalmaz betűkészítő rutint alapZH.c
Kép-beolvasó osztályok textúrázáshoz:
Bitmap képek beolvasásához (.bmp) bitmap.h bitmap.c
Használat:
BITMAPINFO *texInfo; GLubyte *texBits;
texBits = LoadDIBitmap("image.bmp", &texInfo);
Targa képek beolvasásához - C++ (.tga) CTargaImage.h CTargaImage.cpp
Használat:
CTargaImage *m_textureOne; m_textureOne = new CTargaImage;
m_textureOne->Load("image.tga");
Itt találhatók a legszorgalmasabb és legügyesebb hallgatók munkáiból szüretelt csemegék:
Virtual Rose (Árvai Zoltán)
Liquid Particle (Paulik Róbert)
Mélytenger (Vincze István)
Destinations of War (~200Mb!) - Screenshots (Lovag Tamás)
Kötelező program (Paulik Róbert)
Kötelező program (Lovag Tamás)
Kötelező program (~20Mb!) (Udvari Tibor)
Kötelező program (Vetési Zoltán)
Kötelező program (Árvai Zoltán)
Kötelező program (Laczó Péter)
Kötelező program (Gárdonyi Péter)
OpenGL használata Windows alatt:
Ahhoz hogy OpenGL-ben programozz Windows alatt (gondolom többeteket is érint ez a téma a kötelező programok miatt), az alábbi feltételeknek kell eleget tenni:
- kell valamilyen szövegszerkesztő vagy C/C++ fejlesztői környezet (MS Visual C++, Borland C++ Builder, tetszőleges text-editor parancssori fordító esetén)
- győződj meg róla, hogy a rendszered támogatja az OpenGL-t:
- a C/C++ fordító Include\GL alkönyvtára tartalmazza a gl.h és glu.h fájlokat (esetleg még a glaux.h fájlt is)
- a C/C++ fordító Lib alkönyvtára tartalmazza a glu32.lib és opengl32.lib fájlokat
- a Windows\System32 (régebbi OS esetén Windows\System) könyvtár tartalmazza a glu32.dll és opengl32.dll fájlokat
- ha minden felsorolt fájl megtalálható a megfelelő könyvtárakban, akkor (elméletileg) a GLUT bővítmény nélküli OpenGL már meg van. A GLUT beállításához a következőket kell tenned:
- töltsd le a GLUT-ot a lap legalsó linkjét követve (Nate Robbins féle oldal, első letöltési link - glut-3.7.6-bin.zip (117 KB)). Csomagold ki, majd másold a megfelelő fájlokat a megfelelő helyre:
- a glut.h fájlt másold a C/C++ fordító Include\GL alkönyvtárába
- a glut32.lib fájlt másold a C/C++ fordító Lib alkönyvtárába
- a glut32.dll fájlt másold a Windows\System32 (régebbi OS esetén Windows\System) könyvtárba (ha ott már szerepel, akkor előbb készíts biztonsági másolatot a régi fájlról, majd (ne a másolatot) írd felül az újjal)
- kapcsold össze a megfelelő lib-eket és dll-eket. Ezt Borland fordító esetén így teheted meg:
- lépj be a C/C++ fordító Lib alkönyvtárába (parancssor-ban), majd írd be (Windows\System legyen régi OS esetén):
- IMPLIB glut32.lib c:\Windows\System32\glut32.dll
- IMPLIB glu32.lib c:\Windows\System32\glu32.dll
- IMPLIB opengl32.lib c:\Windows\System32\opengl32.dll
- ha nem Borland fordítód van, akkor olvasd el a README-win32.txt fájlt, melyet a GLUT-tal együtt töltöttél le
- ha mindent megcsináltál, akkor lehet kezdeni
- az alábbi 2 linkről a simple.c program 2 változatát mentheted le; az első a Linux-os verzió, a második windows-ban fordítható:
Ingyenesen letölthető Borland C++ Compiler 5.5 parancssori fordító az alábbi linkről (ingyenes, de végig kell menni egy sor regisztráción):
http://www.borland.com/downloads/download_cbuilder.html
GLUT telepítése és használata Microsoft Visual Studio .NET alatt (köszönettel):
1. GLUT letöltése, a benne lévő fájlok bemásolása a megfelelő helyre
- glut32.dll --> C:\Windows\system32 - glut32.lib --> C:\Program Files\Microsoft Visual Studio\VC\lib - glut.h --> C:\Program Files\Microsoft Visual Studio\VC\include
Megjegyzés: a Visual Studio telepítési könyvtára és verziója alapján kis mértékben más is lehet az elérési útvonal (pl. VC helyett VC7, VC8... stb.).
2. Új Visual Studio project létrehozása
- New/Project... - Win32 Console Application (Win32 Console Project) kiválasztása - a megjelenő varázslóban a végén pipáljuk ki az "Empty Project" checkboxot, hogy üres projectet hozzon létre
3. Forrásfájl hozzáadása
- vagy adjunk hozzá egy új, üres C++ file-t (Project/Add New Item...), és szerkesszük kedvünkre - vagy Project/Add Existing Item... menüponton adjuk hozzá a már megírt forrást
4. Project tulajdonságok módosítása
- Project/Properties... menüpont - A bal felső sarokba a Configuration legördülő menüből válasszuk az "All Configurations"-t - Configuration Properties/Linker/Input --> Additional Dependencies mezőbe írjuk be: "opengl32.lib glu32.lib glut32.lib" (idézőjelek nélkül!) - Configuration Properties/Linker/Command Line --> Additional Options szövegdobozba írjuk be: "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup" - "OK"-val mentsük el a változásokat
5. Fordítás, futtatás
- Fordítás, linkelés a szokásos módon (pl. Build/Build Solution ...) - Futtatás a szokásos módon (pl. Debug/Start Debugging)
Letölthető OpenGL header fájlok és könyvtárak Borland fordítóhoz (nem garantálható a működésük a rendszerbeli eltérések miatt, kérheti még a WINMM.dll-t, amelyet ingyenesen letölthetsz):
glu32.lib glut32.lib opengl32.lib
glu32.dll glut32.dll opengl32.dll
Letölthető OpenGL header fájlok és könyvtárak DEV C++ fordítóhoz (szintén nem garantálható rendszerfüggetlen működés) - köszönettel:
- "Include\GL"-be:
gl.h glu.h glut.h glaux.h glext.h
- "Lib"-be:
libglu32.a libglut32.a libopengl32.a libglaux.a libglut.a
- továbbá:
| [
Home |
CV |
Scientific
work | Teaching |
Software
| Photo gallery |
Links | CUNY
mirror
] |
Last modified: April 05, 2007