Č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



1. Zadání

  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).



2. Zadavatel

  Dr. Ing. Bedřich Beneš



3. Vypracovali

  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.



4. Řešení



  4.1 Model letadla

  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).



  4.2 Model vodní hladiny

  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



  4.3 Model krajiny

  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



  4.4 Pohyb ve scéně

  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



  4.5 Hierarchie scény

  Na obr. č. 6 je zobrazena hierarchie scény tak, jak se s ní pracuje na úrovni knihovny OpenGL.

 

Obr. č. 6



  4.6 Objekty v krajině

  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



  4.7 Vykreslování krajiny

  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



5. Ke stažení

 
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)



6. Literatura

  [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