Isle of Skye - Ein Flugsimulator mit prozeduraler Terrain-Generierung für das Apple iPhone


Bachelorarbeit, 2010

64 Seiten, Note: 1.0


Leseprobe


Inhaltsverzeichnis

1 Einleitung

2 Aufgabenstellung
2.1 Ausgangspunkt
2.2 Aufgabendefinition
2.3 Eingrenzung

3 Fachliches Umfeld
3.1 Theoretischer Hintergrund
3.1.1 Dreidimensionales Terrain in Computeranwendungen
3.1.2 Heightmaps
3.1.3 Plasma-Fraktale
3.1.4 Prozedurale Synthese
3.1.5 Skybox
3.1.6 Quaternions
3.1.7 Multitexturing
3.2 Technologischer Hintergrund
3.2.1 Apple iPhone 3GS
3.2.2 OpenGL ES
3.2.3 PowerVR SDK
3.3 Algorithmen zur prozeduralen Terrain-Synthese
3.3.1 Fuzzy-Landscaping
3.3.2 Fault-Line Algorithmus
3.3.3 Circles Algorithmus
3.3.4 Midpoint-Displacement
3.3.5 Particle-Deposition
3.3.6 Fractal-Brownian-Motion
3.4 Analyse der Algorithmen
3.4.1 Gewichtung
3.4.2 Auswahl
3.4.3 Ausblick

4 Implementierung des Spiels
4.1 Implementierung der Algorithmen
4.1.1 Particle-Deposition Terrain
4.1.2 Midpoint-Displacement Terrain
4.1.3 Analyse Midpoint-Displacement und Particle-Deposition
4.1.4 Finale Auswahl
4.2 Implementierung des Spiels
4.2.1 Das Spielfundament - Die PVRShell
4.2.2 Die GameEngine Klasse
4.2.3 Skybox
4.2.4 Flugzeug Kamera mit Verzögerung
4.2.5 Terrain Multitexturing
4.3 Beschleunigungsansätze
4.3.1 Array of Structures
4.3.2 Vertex-Buffer-Objects
4.3.3 Beleuchtungsmodell
4.3.4 Das Terrain als Triangle-Strip
4.3.5 Bitoperationen

5 Ergebnisse und Bewertung
5.1 Darstellung des Erreichten
5.2 Mögliche Verbesserungen
5.3 Das Spiel

6 Zusammenfassung und Aussicht

7 Literaturverzeichnis

8 Abbildungsverzeichnis

1 Einleitung

Für viele Menschen sind Computerspiele eine beliebte Freizeitbeschäftigung geworden. Waren sie vor einigen Jahren hauptsächlich auf Spielkonsolen und Heimcomputern ver­treten, steigt nun ihre Verbreitung auf Smartphones und Mobiltelefonen. Die Etablierung von Apple's App Store oder dem Android Marketplace hat dem Trend weiteren Auf­schwung gegeben. Kostenlos oder gegen Geld können über diese Portale Anwendungen auf dem eigenen Smartphone installiert werden.

Im Bezug auf Speicherplatz, Systemressourcen und Grafikperformance sind die mobilen Endgeräte dem Heimcomputern und Spielkonsolen unterlegen. Deutlich sichtbar wird dieser Umstand bei 3D-Computerspielen. Sie benötigen tendenziell mehr Speicherplatz und Systemressourcen als ihre 2D-Pendants. Dies liegt im erhöhten Rechenbedarf, wel­cher nötig ist um komplexe 3D-Szenen in Echtzeit darzustellen.

Durch Spielinhalte, welche durch prozedurale Methoden generiert wurden, können Sy­stemressourcen geschont werden. Denn die Spielinhalte stehen nicht von Anfang an fest, sondern werden erst zur Ausführung des Programms generiert. Der Speicherplatz für Programmdaten entfällt. Des Weiteren liefert die zufallsgesteuerte Synthese der pro- zeduralen Methoden eine große Anzahl an verschiedenartigen Ergebnissen. Bei jedem Programmstart werden nach festgelegten Ausgangsparametern neue Inhalte generiert. Das Ziel dieser Arbeit liegt in der Implementierung eines 3D-Flugsimulators, dessen Spielterrain nach prozeduralen Methoden generiert wird. Die zugrunde liegende Ziel­hardware ist das iPhone 3GS, welches mit PowerVR SGX Grafikprozessor Shaderopera- tionen unter OpenGL Es 2.0 unterstützt.

Das folgende Kapitel liefert einen genaueren Bezug zum Thema und geht detaillierter auf die Problemstellung ein. Anschließend wird im dritten Kapitel das fachliche Umfeld abgesteckt. Dabei wird der theoretische Hintergrund aufgearbeitet und ein Blick auf die technologische Ebene dieser Arbeit geworfen. Darauf aufbauend, befasst sich der letz­te Abschnitt mit der Vorstellung und kritischen Bewertung verschiedener Algorithmen zur Terrain-Generierung. Mit der Implementierung des prozeduralen Terrains und der Umsetzung des Spiels befasst sich Kapitel vier. Auch Ansätze zur Beschleunigung der Anwendung werden an dieser Stelle diskutiert. Kapitel fünf beleuchtet die Ergebnisse dieser Thesis und befasst sich mit möglichen Verbesserungen. Abschließend wird in Ka­pitel sechs ein zusammenfassender Rückblick auf diese Arbeit geworfen.

2 Aufgabenstellung

2.1 Ausgangspunkt

Der gegenwärtige Stand der Technik im Heimcomputerbereich glänzt bei der Darstellung von 3D-Spielen mit atemberaubenden Effekten und brillanter Grafik. Seit den letzten Jahren steigt auch im Bereich der Smartphones die Verbreitung von Spielen. Die OpenGL Unterstützung dieser Geräte ermöglichte es, Anwendungen zu programmieren, welche bis vor kurzem nur auf Heimcomputern oder Spielkonsolen darstellbar waren. Auf der ande­ren Seite werden Smartphones durch limitierende Faktoren eingeschränkt. Die Gesamt­heit der Systemressourcen ist beschränkt und eine Aufrüstung ist meist nicht möglich. Die Rechenkapazitäten der Smartphones steigen zwar stetig, sind aber im Vergleich zur PC Hardware gering. Ein weiterer Nachteil liegt in der begrenzten Einsatzdauer. Die Kapazität des Akkus gibt den maximalen Zeitraum der Benutzung vor und recheninten­sive Anwendungen können die Zeit zwischen zwei Aufladungen erheblich reduzieren.

Eine Möglichkeit die begrenzten Systemressourcen von Smartphones zu schonen, liegt in der Verwendung von prozeduralen Methoden. Sie ermöglichen die Erzeugung von Pro­gramminhalten verschiedenster Art. Prozedurale Methoden benötigen keinen Speicher­platz auf dem System, da die Inhalte erst zur Laufzeit des Programms generiert werden. Die Synthese basiert auf festen Ausgangsparametern, erfolgt aber zufallsgesteuert. Der Zufallsfaktor bewirkt, dass die Ergebnisse nie gleich sind. Mit Blick auf die Systemres­sourcen liegt der Vorteil prozeduraler Methoden in den theoretisch unbegrenzt möglichen Variationen, die erzeugt werden können. Eine vorherige Erstellung der Inhalte durch den Entwickler entfällt, genauso wie deren Speicherung auf dem Gerät.

In Computerspielen wurden prozedurale Methoden schon früh angewendet[1]. Das pro- zedurale Leveldesign einer bekannten Action-Rollenspiel Serie[2] begeisterte um die Jahr­tausendwende viele Computerspieler. Die zufällig generierten Spiel-Levels sahen immer unterschiedlich aus und das sorgte für hohen Langzeit-Spielspaß. In einem aktuellen Ego- Shooter[3] werden ebenfalls prozedurale Methoden verwendet. In dem Spiel ist es möglich mit über einer halben Million prozedural erstellter Waffen zu spielen, welche allesamt verschiedene Eigenschaften besitzen. Wären diese Spieldaten vorausberechnet worden,

wäre die dafür benötigte Speichermenge enorm hoch gewesen.

Die zur deutschen Demoszene gehörende Gruppe Farbrausch zeigt, dass es auch mög­lich ist ein komplettes 3D-Spiel mit der Größe von nur 96 Kilobyte zu entwickeln. In ihrem Spiel[4] wird von Models über Texturen, bis hin zur Spielmusik, alles prozedural zur Laufzeit erstellt. Damit gewann Farbrausch 2006 den Deutschen Entwicklerpreis für das innovativste Spiel des Jahres [Farbrausch, 2006].

2.2 Aufgabendefinition

Für die Entwicklung des Spiels ist die Auseinandersetzung mit verschiedenen Problem­stellungen unabdingbar. Ein Kernbereich dieser Arbeit ist die Auseinandersetzung mit dem Thema der prozeduralen Terrain-Generierung und der dafür zur Verfügung ste­henden Algorithmen. Da diese das Terrain nach unterschiedlichen Vorgehensweisen ge­nerieren, variieren die optischen Resultate sehr stark. Aus diesem Grunde müssen die Algorithmen auf ihre Verwendbarkeit hin geprüft werden. Folglich muss ein Bewertungs­system geschaffen werden, dass es ermöglicht die Eigenschaften der Algorithmen durch Kriterien zu gewichten. Der Algorithmus, welcher sich unter den Kriterien als der Taug­lichste herauskristallisiert, wird anschließend programmiertechnisch umgesetzt und zur Darstellung des Spielterrains verwendet werden. Der Titel Isle of Skye ist eine Anleh­nung an die gleichnamige Insel im Nordwesten Schottlands und dementsprechend soll auch das Spielterrain die Form einer Insel aufweisen.

Der zweite Kernbereich dieser Arbeit umfasst die Realisierung des Flugsimulators. Dazu gehört die Entwicklung einer Spiel-Engine, welche in der Lage ist alle wesentlichen Spie­labläufe zu koordinieren. Darunter fallen unter Anderem das Behandeln von Events, das Aktualisieren der Spiellogik sowie das Rendern der 3D-Szene.

In der Simulation soll der Spieler das Flugzeug aus der Perspektive einer Third-Person[5] Kamera bewegen. Die Steuerung des Flugzeugs soll durch den eingebauten Beschleu­nigungssensor des iPhones ermöglicht werden. Auf diese Weise wird durch drehen und neigen des iPhones eine Steuerung des Flugzeugs ohne Berührung des Touchscreens möglich. Um die Geschwindigkeit des Flugzeugs zu animieren soll ein Partikelsystem implementiert werden, welches je nach Geschwindigkeit unterschiedlich stark ausgeprägt ist.

Zur Unterstreichung der Spielatmosphäre wird eine Skybox die Spielwelt umschließen. Zudem wird das Terrain mit Hilfe von Multitexturing entsprechend seinen Höhenwerten texturiert. Verschiedenen Geländestufen und die Vegetationsgrenze lassen sich auf diese Weise visualisieren.

Die zugrunde liegende Zielumgebung ist das iPhone 3GS welches mit PowerVR SGX

Grafikprozessor Shaderoperationen unter OpenGL Es 2.0 unterstützt. Diese werden aus­genutzt um im Spiel ein realistisches Beleuchtungsmodell zu simulieren.

Da die Umsetzung dieser Arbeit auf einem Smartphone mit begrenzten Systemressourcen basiert, sind Methoden zur Beschleunigung der Terrain-Synthese und Rendergeschwin- digkeit sinnvoll. Mögliche Beschleunigungsansätze werden in dieser Arbeit behandelt und im Spiel umgesetzt.

2.3 Eingrenzung

Die Reihe der im nachfolgenden Kapitel vorgestellten Algorithmen erhebt keinen An­spruch auf Vollständigkeit. Vielmehr wird eine Auswahl von sechs bekannten und eta­blierten Verfahren dargestellt und untersucht. Die vollständige Implementierung jedes Algorithmus würde den Rahmen dieser Arbeit sprengen. Aus diesem Grunde werden in Abstimmung mit einem Bewertungssystem nur die tauglichsten Algorithmen umgesetzt. Prozedurale Synthese ermöglicht auch die Generierung von anderen Spielinhalten, wie Texturen oder Musik [vgl. Abschnitt 3.1.4]. Jede dieser Syntheseformen ist ein komple­xes Thema für sich. Aus diesem Grunde liegt der Fokus dieser Arbeit ausschließlich auf der prozeduralen Synthese von Terrain.

Die theoretische Basis der im Folgenden diskutierten Konzepte werden durch das Spiel Isle of Skye belegt. Es weist die Kernelemente eines Flugsimulators auf, besitzt in jedem Fall aber einen prototypischen Charakter und wird in dieser Form keinesfalls mit einem kommerziellen Spiel vergleichbar sein.

3 Fachliches Umfeld

3.1 Theoretischer Hintergrund

Im folgenden Abschnitt werden eine Anzahl ausgewählter und im 3D-Bereich gebräuch­licher Techniken vorgestellt. Ihre theoretischen Hintergründe werden erläutert und Ver­fahrensweisen zur Umsetzung aufgezeigt. Auf diesem theoretischen Fundament baut die spätere Implementierung des Spiels Isle of Skye auf.

3.1.1 Dreidimensionales Terrain in Computeranwendungen

Gegenwärtige Computerspiele sind in der Lage durchweg realistisch anmutende Land­schaften in einem hohem Detailgrad darzustellen. Schroffe Berggipfel oder sanfte Hügel­ketten, sowie die natürlich wirkende Darstellung von Ebenen und tiefen Tälern, bestim­men den aktuellen Stand der 3D-Technik (Abbildung 3.1).

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 3.1: Screenshot aus dem Spiel Stalker - Call of Pripyat (2009).

Definiert werden diese Außenareale meist durch Polygonnetze. Diese werden auch Drei­ecksnetz oder Mesh genannt. Ein Polygonnetz wird durch eine endliche Anzahl an Punkt­koordinaten im 3D-Raum bestimmt (Abbildung 3.2). Diese Punktkoordinaten werden Vertex[6] genannt. Neben den Punktkoordinaten werden zusätzlich auch noch Informa­tionen über den Normalen-Vektor des Vertex und dessen Koordinaten auf der Textur gespeichert.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 3.2: Das Polygonnetz eines dreidimensional gerenderten Terrains.

Mit Hilfe von Texturkoordinaten kann über die formgebende Grundstruktur des Poly­gonnetzes eine Rastergrafikdatei gelegt werden. Die Oberflächendetails eines Terrainpo­lygons erhöhen sich beispielsweise stark durch die Verwendung von Sand-, Gras- oder Felstexturen. Das Terrain wirkt auf diese Weise natürlicher, da es mehr an seine realen Vorbilder erinnert.

Im Zusammenspiel mit einer Lichtquelle dienen die Vertex Normalen der Ermittlung des Lichteinfalls auf das texturierte Dreiecksnetz. Durch verschiedene Beleuchtungsmodelle wird auf diese Weise die realistische Beleuchtung einer Oberfläche ermöglicht. Bekannte Beleuchtungsmodelle sind das Phong- und das Blinn-Modell welche in Abschnitt 4.3.3 behandelt werden.

3.1.2 Heightmaps

Das zur Darstellung von Terrain notwendige Dreiecksnetz muss nicht zwingend mit Hilfe eines 3D-Modelling-Programms[7] erstellt werden. Dreidimensionales Terrain kann auch mit Hilfe von Heightmaps generiert werden. Heightmaps[8] sind Rastergrafik-Dateien, de­ren enthaltene Farbinformationen es ermöglicht, die Oberfläche eines Objektes zu defi­nieren (Abbildung 3.3).

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 3.3: Eine Heightmap.

Die Heightmap stellt dabei das Relief der Geländetopographie auf dem gewünschten Dreiecksnetz dar (Abbildung 3.4).

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 3.4: Die dreidimensional gerenderte Heightmap aus aus Abbildung 3.3.

Die verschieden Abstufungen des Farbwertes pro Bildsegment bestimmen den Höhen­wert am korrespondierenden Vertex. Folglich legen die Farbwerte der Abtastpunkte die Höhe des Geländes fest. Die Abstufung der Abtastwerte erfolgt in Graustufen. Dunkle Farbwerten definieren tiefe Punkte und helle Farbwerte hohe Punkte.

3.1.3 Plasma-Fraktale

Plasma-Fraktale sind geometrische Figuren, welche einen hohen Grad an Selbstähnlich­keit aufweisen. Selbstähnlichkeit bedeutet, dass diese Figuren aus kleineren Kopien von sich selbst bestehen. Diese kleineren Figuren sind wiederum sich selbst ähnlich (Abbil­dung 3.5).

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 3.5: Ein Plasma-Fraktal.

Landschaften und Geländeformationen auf der Erde sind ebenfalls selbstähnlich. Hält man einen zerklüfteten Stein in der Hand und betrachtet ihn, entdeckt man genau die­selben Unebenheiten wie an einer Bergkette, die sich am Horizont entlang zieht. Die selben Strukturen und Muster, welche der Betrachter im Großen findet, finden sich auch im Kleinen wieder.

Die Eigenschaft der Selbstähnlichkeit ermöglicht es, natürlich wirkendes, dreidimensio­nales Gelände aus Plasma-Fraktalen zu generieren. Unabhängig von der Skalierung im Anwendungsprogramm sieht dieses Gelände, aufgrund seiner fraktalen Struktur, immer wie wirkliches Terrain aus [Martz, 1996, vgl.].

Eine treffende nichtmathematische Beschreibung von Plasma-Fraktalen formuliert Jesse Laeuchli in einem Artikel über Fraktal-Programmierung:

„A good non-mathematical definition of a fractal is something regular that has randomness added in a controlled way. Things modeled with fractals are not completely random, but they are not entirely orderly either.“ [DeLoura, 2001, S. 239]

3.1.4 Prozedurale Synthese

Mit Hilfe von Methoden der prozeduralen Synthese können komplexe Programminhal­te erschaffen werden. Beispielsweise ist die Generierung von Heightmaps, Texturen oder Musik möglich. Die Inhalte werden dabei nicht vorher vom Entwickler festgelegt, sondern erst zur Laufzeit der Anwendung berechnet. Die Synthese basiert auf festen Ausgangspa­rametern und folgt zufallsgesteuerten Algorithmen. Aufgrund des Zufallsfaktors in der Synthese kann nach einem einzigen Algorithmus eine nahezu unendliche Variation an Inhalten generiert werden.

3.1.5 Skybox

Um dem Anwender eine unterhaltsame und angenehme Spielerfahrung zu bieten, be­nötigen interaktive Computerspiele eine konsistente und glaubwürdige Spielwelt. Ein Raumschiff-Shooter im Weltraum ist nicht vorstellbar ohne den Weltraum selbst, als Hintergrund des Spielgeschehens. Auch die Atmosphäre eines Abenteuerspiels in den Bergen lebt von der Schönheit der Hintergrundbilder. Der Spieler sieht am Horizont ver­einzelt Wolken und massive Bergrücken um sich herum. In der Ferne könnte sich sogar ein kleines Dorf erahnen lassen. Folglich unterstreichen Hintergrundbilder die Ästhetik der Spielerfahrung und lassen dabei den Spieler tiefer in die Welt eintauchen.

Werden derartig detaillierte Umgebungen mit Hilfe von 3D-Modellen erzeugt, verbraucht der Computer zur Ablage der Modelldaten wertvollen Speicherplatz. Zudem verschwen­den Prozessor und Grafikchip in jedem Renderdurchgang einen Teil ihrer Rechenleisung für die Transformations- und Beleuchtungsberechnung der Modelle. Das ist ungünstig in Anbetracht der limitierten Systemressourcen des iPhones [vgl. Abschnitt 2.1].

Durch Verzicht auf aufwändige Modelle und deren Beleuchtung, spart die Verwendung einer Skybox dem Computer wertvolle Rechenoperationen. Das Prinzip ist dabei sehr simpel. Die entfernten Landschaften werden auf sechs Texturen gezeichnet, von denen jeweils eine auf jede Innenseite des Würfels gelegt wird. Die Kamera des Betrachters wird in der Mitte des Würfels platziert und kann frei um alle Achsen rotieren. Bewegt sich die Kamera, wird der Würfel analog zur Kamera mitbewegt (Abbildung 3.6). Auf diese Weise ist es niemals möglich die Skybox zu verlassen, denn die Kamera bleibt stets in der Mitte. Die Illusion weiter Ferne ergibt sich für den Spieler durch die Projektion der Bilder auf die Innenflächen des Würfels [DeLoura, 2001, vgl. S. 416].

Durch die Verwendung von Bilddateien sind die Helligkeitswerte der Skybox-Texturen schon vorberechnet und auf ihre Nachbartexturen abgestimmt. Beim zeichnen der Sky­box sollte die Beleuchtung der 3D-Szene abgeschaltet werden, denn es ist nicht wün­schenswert, das Beleuchtungsmodell auch auf die entfernte Szenerie der Skybox zu über­tragen.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 3.6: Eine Skybox mit zentral platzierter Kamera.

3.1.6 Quaternions

Die Orientierungsmöglichkeiten eines Bodenfahrzeugs unterscheiden sich von denen eines Luftfahrzeugs. Soll für eine Anwendung beispielsweise die Steuerung eines Luftkissen- bootes umgesetzt werden, so muss zur Richtungsänderung lediglich die Rotation um die Hochachse implementiert werden. Diese Rotation, auch Gieren oder engl. Yaw ge­nannt, bewirkt eine Drehung des Fahrzeugs nach links oder rechts. Entsprechend der Lenkrichtung, rotiert das fiktive Luftkissenboot also um eine senkrecht auf dem Fahr­zeug stehende, imaginäre Achse.

Die Orientierung eines Flugzeugs ist dagegen in drei Dimensionen möglich. Neben der zuvor erwähnten Hochachse zur Rechts-Links Bewegung, besitzen Flugzeuge noch zwei weitere Rotationsachsen um die Drehungen möglich sind.

Die zweite Möglichkeit, eine Drehung um die Querachse, bewegt die Spitze des Flug­zeugs nach oben oder nach unten, denn die imaginäre Achse der Rotation verläuft quer durch das Flugzeug. Diese Querachsen-Rotation wird auch als Nicken oder engl. Pitch bezeichnet.

Die dritte Orientierungsmöglichkeit ist die Längsachse. Sie ist ein gedachter Vektor, wel­cher durch das Flugzeug hindurch geht und in Fahrtrichtung zeigt. Um diesem Vektor ist die Art von Drehungen möglich, bei denen die eine Flügelspitze in die Luft und die Andere zum Boden zeigt. Diese Rotation ist beispielsweise ist auch Teil der Bewegung, wenn ein Düsenjet schnell aus einer Staffelformation ausbricht. Das Flugzeug rollt dabei um seine Längsachse weswegen hierfür auch der Begriff Rollen oder engl. Roll benutzt wird [Deloura, 2000, vgl. S. 37].

Wie im vorangegangenen Absatz beschrieben, lassen sich Drehungen im dreidimensio­nalen Raum durch Rotationen um drei Achsen beschreiben. Die Rotationswinkel um die Achsen werden Eulerwinkel [Hanson, 2006, vgl. S. 52] genannt. In einer Computeranwen­dung, in der die Drehung eines Objekts im Raum berechnet werden soll, muss aus den Eulerwinkeln die zugehörige Drehmatrix gebildet werden. Die Eulerwinkel bestimmen dadurch die Transformation zwischen den zwei Koordinatensystemen. Dem Weltkoordi­natensystem und dem Flugzeugkoordinatensystem.

Ein bekanntes Problem, welches sich in Verbindung mit Rotationen von Eulerwinkeln auftut, ist der Gimbal-Lock Effekt. Bei mehrfachen, aufeinander aufbauenden Rotationen kann dieser zu einer Blockierung der Drehung führen. Mit diesem Effekt hatte sich schon die Besatzung der Mondlandefähre von Apollo 10 in den sechziger Jahren auseinander­setzen müssen. Für die geplante Mondlandung von Apollo 11 wurde in der Mondumlauf­bahn ein Testflug abgehalten und verschiedene Manöver geprobt. Bei der anschließenden Rückkehr zum Basismodul begann das computergestützte Kreiselsystem für die Lage­regelung der Mondlandefähre zu versagen. Das Mondmodul trudelte wild im Weltraum herum. Erst die Umschaltung auf manuelle Steuerung ermöglichte es den Astronauten die Raumfähre wieder in den Griff zu bekommen und sicher anzudocken [Hanson, 2006, S. 19].

Um sich zu veranschaulichen wie das Gimbal-Lock Problem auftreten konnte, muss ein Blick auf das Prinzip der Kreiselsysteme geworfen werden. Auch in der heutigen Luft- und Raumfahrt werden sie zur aktiven Lageregelung eingesetzt.

Das Kreiselsystem ist fest in einen Rahmen installiert und besteht aus drei rotierenden

Ringen mit sich verringerndem Durchmesser. Die Rotationsachsen der drei Ringe sind senkrecht zueinander angebracht (Achsen 1, 2, und 3 in Abbildung 3.7 A). Der äußere Rahmen, welcher fest mit dem Luftfahrzeug verbunden ist, kann sich frei um die Achse 1 (Abbildung 3.7 B) oder um die Achse 3 (Abbildung 3.7 C) bewegen. Bis zu diesem Punkt funktioniert das System ohne Einschränkungen. Sobald aber der Rahmen aufgrund der Flugzeugbewegung, sich 90° um Achse 2 dreht, liegen Achse 1 und Achse 2 in einer Reihe. Es ist nun nicht mehr möglich, frei um die Achse 1 zu rotieren (Abbildung 3.7 D). Das System hat effektiv einen Freiheitsgrad verloren. Dieses Phänomen wird Gimbal-Lock genannt [Hanson, 2006, S. 23 ff.].

Mit Quaternions können ebenfalls Drehungen im Raum beschrieben und berechnet wer­den. Bei der Umsetzung einer 3D-Anwendung können sie vollständig als Ersatz für Ro­tationsmatritzen herangezogen werden. Sie sind kompakter als Rotationsmatrizen, da sie nur durch vier statt neun Werte repräsentiert werden. Viele mathematische Opera­tionen, wie beispielsweise Multiplikationen, sind dadurch weniger rechenaufwändig. Des Weiteren leiden Quaternions nicht unter dem bei Eulerwinkeln auftretenden, Gimbal- Lock Effekt. Durch sphärische Interpolation[9] ist es zudem möglich, die 3D-Rotationen von Quaternions zu animieren [Deloura, 2000, S. 195 vgl.].

Im Rahmen dieser Arbeit werden sphärisch interpolierte Quaternions verwendet, um die Rotation des Flugzeugs, analog aber zeitlich leicht verzögert, auf die Kamera zu über­tragen. Dies resultiert in einer optisch ansprechenden Animation der Drehungen des Flugzeugs. Die Implementierung der Flugzeugsteuerung mit verzögerter Kamera wird unter Absatz 4.2.4 genauer beschrieben.

3.1.7 Multitexturing

Beim Multitexturing können den einzelnen Textureinheiten im Grafikchip mehrere Tex­turen zugeordnet werden. Diese werden dann im anschließenden Renderdurchgang auf ein Polygon bzw. Polygonnetz gelegt. Durch die Überblendung der Texturen ist es mög­lich, den Detailierungsgrad der Oberfläche eines Meshes zu erhöhen. Die Kombination mehrerer Texturen ändert nicht die Geometrie des zu Grunde liegenden Dreiecksnetzes - nicht der Mesh selbst nimmt an Detail zu, sondern nur sein texturierter Überzug.

Das wohl bekannteste Verfahren des Multitexturing ist das so genannte Lightmapping. Dabei werden Licht- und Schatteneinfall vorberechnet und in einer Textur gespeichert. Anschließend wird die Lightmap über die Basistextur gelegt. Dadurch können Beleuch­tungsdetails, wie zum Beispiel der Schattenwurf von Objekten, simuliert werden (Abbil­dung 3.8).

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 3.7: Schematische Repräsentation eines Kreiselsystems. Bild D zeigt das Sy­stem im Gimbal-Lock.

[...]


[1] Elite (1984) und The Sentinel (1986)

[2] Diablo (1990) und Diablo II (2000), Blizzard North

[3] Borderlands (2009), Gearbox Software

[4].kkrieger (2004), .theprodukkt

BEine Perspektive bei der die Kamera typischerweise hinter oder über dem Charakter schwebt.

[6] pl. Vertices

[7] Maya, Blender oder 3D Studio Max

[8] Heightmaps sind auch als Höhenfelder oder Höhenkarten bekannt.

[9] auch Slerp (spherical linear interpolation) genannt

Ende der Leseprobe aus 64 Seiten

Details

Titel
Isle of Skye - Ein Flugsimulator mit prozeduraler Terrain-Generierung für das Apple iPhone
Hochschule
Beuth Hochschule für Technik Berlin
Note
1.0
Autor
Jahr
2010
Seiten
64
Katalognummer
V149751
ISBN (eBook)
9783640606313
ISBN (Buch)
9783640605965
Dateigröße
1326 KB
Sprache
Deutsch
Schlagworte
Computer Graphics, Prozedural Terrain Generation, iPhone, Shader, Prozedural, Flugsimulator, prozedurale Terrain-Generierung, Algorithmen, OpenGL, OpenGL ES 2.0
Arbeit zitieren
Paul Ehrhardt (Autor:in), 2010, Isle of Skye - Ein Flugsimulator mit prozeduraler Terrain-Generierung für das Apple iPhone, München, GRIN Verlag, https://www.grin.com/document/149751

Kommentare

  • Noch keine Kommentare.
Blick ins Buch
Titel: Isle of Skye - Ein Flugsimulator mit prozeduraler Terrain-Generierung für das Apple iPhone



Ihre Arbeit hochladen

Ihre Hausarbeit / Abschlussarbeit:

- Publikation als eBook und Buch
- Hohes Honorar auf die Verkäufe
- Für Sie komplett kostenlos – mit ISBN
- Es dauert nur 5 Minuten
- Jede Arbeit findet Leser

Kostenlos Autor werden