ČVUT - FEL - Semestrální práce - Grafické systémy na počítačích Silicon Graphics
Hlavní stránka » Osobní » ČVUT - FEL » Semestrální práce a referáty » Grafické systémy na počítačích Silicon Graphics
České vysoké učení technické v Praze
Fakulta elektrotechnická
Semestrální práce
Grafické systémy na počítačích Silicon Graphics
1998/1999 (letní semestr) | Marek Uher |
Obsah:
1. Zadání
2. Zadavatel
3. Vypracovali
4. Řešení
4.1 Model letadla
4.2 Model vodní hladiny
4.3 Model krajiny
4.4 Pohyb ve scéně
4.5 Hierarchie scény
4.6 Objekty v krajině
5. Ke stažení
6. Literatura
Vytvořte letecký simulátor v grafické knihovně OpenGL. Umožněte volný pohyb letadla v reálném čase nad fraktálně generovanou nebo předem nadefinovanou krajinou. Vyřešte také adaptivní změnu rozlišení mapované textury a objektů v krajině (LOD).
Marek Uher, V. ročník / studijní skupina 26.
Ondřej Pokorný, V. ročník / studijní skupina 26.
Štěpán Obdržálek, V. ročník / studijní skupina 25.
Model letadla je uložen jako OpenGL seznam (list), který se načítá ze souboru pouze jednou při startu programu. Tento seznam se skládá ze sítě trojúhelníků popisujících geometrii letadla a dalších informací (např. barva trojúhelníku, …). Aplikace obsahuje dva modely letadel - McDonnell Douglas F-15 Eagle (obr. č. 2) a Boeing 747 (obr. č. 3).
Vodní hladinu tvořít jedna souvislá plocha protínající krajinu v nulové výšce (viz. obr. č. 1). Pro realistické zobrazení vodní hladiny je na plochu namapována textura a využívá se metoda modulace normály. Tím je dosaženo dojmu vodní plochy.
Obr. č. 1
Krajina je uložena jako výšková mapa. Trojúhelníky, které jsou celé pod nulovou hladinou, se vyřadzují ze zobrazovacího řetězce (tzn. nejsou zbytečně vykreslovány plochy pod vodou) - viz. obr. č. 2 a obr. č. 3.
Obr. č. 2
Obr. č. 3
Pozice letadla je oddělena od natočení letadla, protože je potřeba zvlášť ovládat orientaci letadla a orientaci pozorovatele, obojí relativně k pozici letadla ve scéně - viz. obr. č. 4 a obr. č. 5.
Obr. č. 4
Obr. č. 5
Na obr. č. 6 je zobrazena hierarchie scény tak, jak se s ní pracuje na úrovni knihovny OpenGL.
Obr. č. 6
Objekty v krajině jsou tvořeny “billboardy”, jejichž textury, souřadnice a další informace jsou načteny a uloženy při startu programu do OpenGL seznamů. Pro detekci případných kolizí s objekty ve scéně jsou použity tzv. bounding boxy. Příklad objektů ve scéně je zobrazen na obr. č. 7 a obr. č. 8.
Obr. č. 7
Obr. č. 8
Krajina je vykreslována spirálovitě po blocích (dlaždicích) od bodu ležícího na kolmici, která je spuštěna z letadla (X a Z souřadnice pozice letadla) na plochu v nulové výšce (vodní hladina). Pro každou vykreslovací “smyčku” spirály se testuje vzdálenost od pozorovatele (3D euklidovská vzdálenost). Pokud překročí daný práh, přejde se na vykreslování bloků krajiny v hrubším rozlišení (tzn. rozlišení je adaptivní).
Každý blok je testován, leží-li v zorném úhlu pozorovatele (stačí otestovat střed bloku). Když blok neleží v zorném úhlu pozorovatele, vyřadí se ze zobrazovacího řetězce. Příklad různého vykreslování krajiny je uveden na na obr. č. 9 a obr. č. 10 (pohledy z kokpitů obou letadel).
Obr. č. 9
Obr. č. 10
Binární verze | Ne1 | Ano | Ne2 | Ne2 | Ne2 | Ne2 | Ne2 |
Zdrojové kódy | Ne1 | Ano | Ano | Ano | Ano | Ano | Ano |
1 Zdrojové kódy jsou platformově zavislé na operačním systému typu POSIX (Linux, UNIX, MacOS, BeOS) a prostředí X-Window X11R6 (nebo vyšší) nebo MS Windows 95 (nebo vyšší)
2 Binární verzi lze pro tyto operační systémy sestavy z dodávaných zdrojových kódů
Program potřebuje pro překlad tyto prostředky:
- překladač ANSI C (testováno s překladačem GNU C)
- knihovnu OpenGL
- knihovnu GLUT (testováno na verzi 3.6)
[Beneš97] B. Beneš, P. Felkel, J. Sochor, J.Žára: Vizualizace, Vydavatelství ČVUT, Praha 1997
[Žára92] J. Žára, A. Limpouch, B. Beneš, T. Werner: Počítačová grafika - principy a algoritmy, Grada, Praha 1992
[Sochor96] J. Sochor, J. Žára, B. Beneš: Algoritmy počítačové grafiky, Vydavatelství ČVUT, Praha 1996
[Murray94] J. D. Murray, W. van Ryper: Encyclopedia of graphics file format, O’Reilly & Associates, California 1994
[Hlaváč92] V. Hlaváč, M. Sonka: Počítačové vidění, Grada, Praha 1992
[Bubeník94] F. Bubeník, M. Pultar: Matematické vzorce a metody, Vydavatelství ČVUT, Praha 1994
[Herout92] P. Herout, V. Rudolf, P. Smrha: ABC programátora v jazyce C, Kopp, České Budějovice 1992
Poslední modifikace dokumentu: 10.04.1999