Entwurf und Implementierung eines Algorithmus zur 3D-Darstellung eines Multi-Resolution-Modells von Wasseroberflächen in Echtzeit


Diplomarbeit, 2004

100 Seiten, Note: 1,0


Leseprobe

Inhaltsverzeichnis

1 Einleitung
1.1 Aufgabenstellung

2 Anforderungsbeschreibung
2.1 Einleitung
2.2 Zielbestimmung
2.2.1 Einleitung
2.2.2 Musskriterien
2.2.2.1 Erläuterung
2.2.2.2 Objektorientierung
2.2.2.3 Programmiersprachen
2.2.2.4 Dreidimensionale Darstellungsform
2.2.2.5 Echtzeit
2.2.2.6 Multi-Resolution
2.2.3 Wunschkriterien
2.2.3.1 Erläuterung
2.2.3.2 Realistische Optik
2.2.3.3 Umgebung
2.2.4 Abgrenzungskriterien
2.2.4.1 Erläuterung
2.2.4.2 Kommunikationslose Oberflächen
2.2.4.3 Globus-Projektion
2.3 Produkteinsatz
2.3.1 Einleitung
2.3.2 Anwendungsbereiche
2.3.3 Zielgruppen
2.4 Technische Produktumgebung
2.4.1 Software
2.4.2 Hardware

3 Ozeanographische Grundlagen
3.1 Einführung
3.2 Wellen
3.2.1 Wellenarten
3.2.2 Wellenentstehung
3.2.3 Wellen-Charakteristika
3.2.3.1 Wellenkronen
3.2.3.2 Schaum
3.2.3.3 Wasserspritzer
3.3 Umwelteinflüsse auf Wellen
3.3.1 Sonne
3.3.2 Wind
3.3.3 Gravitation

4 Technologische Grundlagen
4.1 Einführung
4.2 Verfahren zur Wasser-Berechnung
4.2.1 Einführung
4.2.2 Gerstner
4.2.3 Gleichungen von Navier-Stokes
4.2.4 Perlin Noise
4.2.5 Schnelle Fourier-Transformation
4.3 Visuelle Eigenschaften von transparenten Körpern
4.3.1 Einführung
4.3.2 Refraktion, Reflexion
4.3.3 Environment Map
4.4 Leistungssteigerung
4.4.1 Einführung
4.4.2 Level-of-Detail
4.4.3 Frustum Culling

5 Definitionsphase
5.1 Einleitung
5.2 Methodische Vorgehensweise
5.2.1 Einleitung
5.2.2 Geschäftsprozesse
5.2.3 Klassendiagramm
5.2.4 Sequenzdiagramm

6 Entwurf und Implementierung
6.1 Einleitung
6.2 Programm-Entwurf
6.2.1 Erläuterung
6.2.2 Wahl der Programmiersprache
6.3 Implementierung
6.3.1 Erläuterung
6.3.2 Algorithmische Sicht
6.3.2.1 Erläuterung
6.3.2.2LOD-Verfahren
6.3.2.3 Frustum Culling-Verfahren
6.3.2.4 Wellen-Bewegung

7 Ergebnis und Bewertung
7.1 Einleitung
7.2 Impressionen
7.3 Bewertung des Frustum Culling-Verfahrens
7.4 Bewertung des LOD-Verfahrens

8 Fazit und Perspektiven

9 Anhang
9.1 Glossar
9.2 Abkürzungsverzeichnis
9.3 Abbildungsverzeichnis
9.4 Tabellenverzeichnis
9.5 Formelverzeichnis
9.6 Literaturverzeichnis
9.7 Programmcode
9.7.1 Methode Calculate Frustum
9.7.2 Methode Calculate Bounding Sphere
9.7.3 Methode Sphere in Frustum
9.7.4 Methode Calc2DFFT
9.7.5 Methode CalcFFT
9.7.6 Cubemap laden
9.7.7 Cubemap aktivieren

1 Einleitung

1.1 Aufgabenstellung

Diese Facharbeit stellt die schriftliche Dokumentation des zu entwickelnden Software-Produktes dar. Sie dient der Erlangung des Grades eines Diplom-Informatikers. Gleichfalls ist sie Dokumentation, anhand derer die Definition, der Entwurf, die Realisierung und die Implementierung der Anwendung nachvollzogen werden kann.

Das Produkt wird keine Anwendung im klassischen Sinne mit Ein- und Ausgabe-Werten. Es ist weder eine Software, die nach Eingabe bestimmter Parameter entsprechende Funktionen ausführt noch ist eine Anwendung, die datenbankbasiert fungiert. Es ist auch keine Benutzeroberfläche vorgesehen sondern einzig ein Ausgabebildschirm, der aber nicht direkt auf Benutzereingaben reagieren soll. Aus diesem Grunde werden auch keine software-ergonomische Gesichtspunkte berücksichtigt. Weiterhin mussten weder Marktstudien noch Durchführbarkeitsuntersuchungen unternommen werden. Deshalb wird auf eine dokumentierte Planungsphase verzichtet.

Im Rahmen dieser Diplomarbeit soll eine Anwendung entwickelt werden, welche in ein bestehendes Geoinformationssystem[1] (im Folgenden: GIS) eingebunden werden soll. Aufgabe dieses Produktes wird die Darstellung von Wasseroberflächen in Echtzeit sein. Zu Demonstrationszwecken werde ich eine Anwendung erstellen, die die Erfüllung der genannten Anforderungen demonstrieren wird. Die Beschreibung der Eingliederung des entstandenen Produktes in das erwähnte GIS ist nicht Bestandteil dieser Facharbeit.

Es werden folgende Anforderungen an die zu entwickelnde Wasseroberflächen-Darstellung gestellt:

- möglichst realistische Wellenbildung und –bewegung,
- möglichst realistisches Aussehen der Wasseroberfläche,
- Darstellung unterschiedlicher Wellenformen (z.B. Tiefwasserwellen und Flachwasserwellen),
- Wellenberechnung und –darstellung soll in Echtzeit[2] geschehen,
- möglichst plattformunabhängig, d.h. nach Möglichkeit nicht an einen bestimmten Grafikkartentyp gebunden,
- beeinflussbare Größe von einem spezifizierten Minimalwert bis auf eine, von der Rechnerkapazität abhängigen, Maximal-Darstellung.

Auf Grund des vorgegebenen Zeitrahmens muss eine Priorisierung erfolgen. Das heißt, es muss im Vorfeld entschieden werden, welche Eigenschaften, die eine Wasseroberfläche in der Realität aufweist, in der späteren Anwendung implementiert werden. Weiterhin müssen die Verfahren, um Echtzeit zu garantieren, sorgfältig ausgewählt werden, da es gerade in diesem Bereich unterschiedliche Vorgehensweisen gibt.

2 Anforderungsbeschreibung

2.1 Einleitung

Die detaillierte verbale Anforderungsbeschreibung an ein neues Produkt wird häufig in Form eines Pflichtenheftes formuliert. Die folgenden Abschnitte beschreiben die einzelnen Kriterien, die für die Entwicklung der Software eine entscheidende Rolle spielen.

2.2 Zielbestimmung

2.2.1 Einleitung

In diesem Kapitel wird beschrieben, welche Ziele durch den Einsatz des Produktes erreicht werden sollen. Um den Entscheidungsraum für die Implementierung zu bilden und um die erwähnte Priorisierung zu berücksichtigen, werden die Ziele nach Muss-, Wunsch- und Abgrenzungskriterien eingeteilt.

2.2.2 Musskriterien

2.2.2.1 Erläuterung

Unter Musskriterien werden die Leistungen genannt, die unabdingbar sind. Zu diesen Leistungen gehören vor allem die Echtzeit-Anforderung, Multi-Resolution, OpenGL als Schnittstelle, C++ als Programmiersprache und natürlich die dreidimensionale Darstellungsform. Weiterhin muss das Produkt so entwickelt werden, dass es später ohne größere Umstände in das bestehende GIS eingebettet werden kann (objektorientierte Entwicklung).

2.2.2.2 Objektorientierung

Die objektorientierte Entwicklung ist in diesem Falle ein Musskriterium, weil die Anwendung zukünftig ohne größere Komplikationen in bereits bestehende Systeme integriert werden soll und voraussichtlich mehrere Entwickler daran beteiligt sein werden.

2.2.2.3 Programmiersprachen

Als Programmiersprache wird C++ und OpenGL als Schnittstelle gefordert. Dies vor allem aus folgenden Gründen:

1. C++ ist eine objektorientierte Sprache,
2. OpenGL ist ein universeller Grafikstandard[3],
3. das GIS basiert auf den beiden Sprachen.

2.2.2.4 Dreidimensionale Darstellungsform

Die dreidimensionale Darstellung ist ein Musskriterium. Es muss später möglich sein in der künstlichen Realität zu navigieren bzw. die Wasseroberfläche aus verschiedenen Blickwinkeln zu betrachten.

2.2.2.5 Echtzeit

Die Wasseroberfläche muss in Echtzeit[4] berechnet und dargestellt werden. Die Framerate[5] ist dabei maßgebend. Echtzeit bezieht sich in diesem Falle also auf eine minimal darzustellende Framerate, welche vorher festgelegt wird. Selbstverständlich wird es bestimmte Minimal-Voraussetzungen an das Computer-System geben. Nur unter diesen Voraussetzungen kann eine Echtzeit garantiert werden.

2.2.2.6 Multi-Resolution

Die Darstellung der Wasseroberfläche soll in verschiedenen Auflösungen erfolgen. Dies dient der Performance und ist in heutigen 3D-Anwendungen grundsätzlich implementiert. Dabei wird die Auflösung der Wasseroberfläche in Abhängigkeit von der aktuellen darstellbaren Framerate bestimmt. Es gibt verschiedene Arten um ein Multi-Resolution Modell zu realisieren. Auf die wichtigsten Vorgehensweisen wird in Kapitel 4.4 näher eingegangen.

2.2.3 Wunschkriterien

2.2.3.1 Erläuterung

Wunschkriterien beschreiben Wünsche an das zu entwickelnde Produkt. Diese Kriterien sind nicht unabdingbar, ihre Realisierung sollte aber so gut wie möglich angestrebt werden.

2.2.3.2 Realistische Optik

Die Wasseroberflächen sollen so realistisch wie möglich dargestellt werden. Dazu sind Kriterien wie Bewegung und Form, sowie optische Eigenschaften (Reflexion, Refraktion, Farbe etc.) zu erfüllen.

2.2.3.3 Umgebung

Die Umgebung soll nach Möglichkeit die Realistik der Szene unterstützen. Dienlich können sein: Skybox und Terrain.

2.2.4 Abgrenzungskriterien

2.2.4.1 Erläuterung

Abgrenzungskriterien beschreiben ganz bewusst die Dinge, die auf keinen Fall gefordert werden. Da Wünsche im Allgemeinen sehr umfangreich und leicht formulierbar sind, soll dieser Abschnitt dazu dienen, Abgrenzungen des Produkts zu formulieren.

2.2.4.2 Kommunikationslose Oberflächen

Es wird ausdrücklich gefordert, dass die Wasseroberflächen zum jetzigen Zeitpunkt nicht mit ihrer Umgebung kommunizieren sollen. Der Grund ist die aufwändige Programmierung und die enormen Anforderungen an die verwendete Hardware.[6]

2.2.4.3 Globus-Projektion

Das Produkt soll keine Implementierung einer gesamten Welt-Ansicht beinhalten.

2.3 Produkteinsatz

2.3.1 Einleitung

Da der geplante Produkteinsatz wesentliche Auswirkungen auf die funktionale Mächtigkeit und auf die Qualitätsmerkmale hat, werden in diesem Abschnitt die diesbezüglichen Kriterien besprochen.

2.3.2 Anwendungsbereiche

Die späteren Anwendungsbereiche des zu entwickelnden Produktes können sowohl in der Wissenschaft als auch in der Unterhaltungsbranche liegen. Das erwähnte GIS beispielsweise wird eine wissenschaftliche Anwendung sein, die jedoch stark auf ansprechende Optik zielt und deshalb auch, leicht modifiziert, in anderen Produkten, wie z.B. Computerspielen, der Werbung, Informationssysteme für Touristen etc. anwendbar sein wird.

2.3.3 Zielgruppen

Die Zielgruppe ergibt sich aus den genannten Anwendungsbereichen. Dazu gehören im Grunde alle Menschen, die Interesse an künstlicher Realität haben.

2.4 Technische Produktumgebung

2.4.1 Software

Folgende Software muss auf der Zielmaschine installiert und lauffähig sein:

1. Windows 2000/XP,
2. OpenGL 1.5.

2.4.2 Hardware

Die Zielmaschine muss u.a. über folgende Hardware verfügen:

1. Pentium IV Prozessor, 2 GHz,
2. Grafikkarte mit OpenGL-Unterstützung (mind. Version 1.5),
3. 512 MB RAM,
4. ca. 30 MB freier Festplattenspeicher.

3 Ozeanographische Grundlagen

3.1 Einführung

Im Folgenden werden die ozeanographischen Grundlagen, die dem Verständnis von Wellen und deren Simulierung dienen, näher erläutert. Dabei werden die Themen bewusst möglichst kurz gehalten, da das Ziel dieser Facharbeit nicht die Einführung in Ozeanographie sein soll. Es ist jedoch sinnvoll, spezielle Bereiche zu erwähnen und auch zu erklären, damit dem Leser der Zusammenhang zwischen technischen (künstlichen) und realistischen Gegebenheiten bewusst wird.

3.2 Wellen

3.2.1 Wellenarten

Jede Oberfläche einer Flüssigkeit ist durch Wellen deformiert. Wellen stellen eine Verformung der Oberfläche in Richtung der y-Achse da und entstehen durch äußere Einflüsse. In Abhängigkeit von der Art der Flüssigkeit muss zwischen sehr verschiedenen Wellenarten unterschieden werden.

Diese Abhandlung dokumentiert die Wellenarten, welche ausschließlich auf Wasseroberflächen, vor allem auf Ozeanen entstehen. Ozeanwellen unterscheiden sich in folgenden Eigenschaften:

- Wellenhöhe,
- Wellenlänge,
- Form der Wellenkrone,
- Wellengeschwindigkeit,
- Wellenperiode,
- Länge des Wellenzuges.

Die entstehenden Wellenarten sind abhängig von differenten Faktoren. Den größten Einfluss haben der lokale und nicht lokale Wind, die Ufernähe, die Wassertiefe, die Beschaffenheit des Meeresgrundes, der Verschmutzungsgrad des Wassers, der Salzgehalt und die Gravitation, welche jedoch allgegenwärtig ist.

Tiefwasserwellen unterscheiden sich wesentlich von Flachwasserwellen, den sog. kabbeligen Wellen. Sie sind wesentlich höher, weisen nur eine geringe Wellensteilheit auf, haben abgerundete Kronen, der Abstand der Wellen (von Krone zu Krone) ist meistens zwischen 50 und mehr als 100 Meter groß und die Wellenzüge können mehrere Kilometer lang sein.

Abbildung in dieser Leseprobe nicht enthalten

Bild 1: Darstellung einer Tiefwasserwelle

(Quelle: [Ma04] )

Flachwasserwellen hingegen haben eine geringere Höhe, der Wellenabstand ist oft wesentlich kürzer und die Wellenkrone spitzt sich zu, bricht sogar teilweise. Die Wellensteilheit kann zunehmen.

Abbildung in dieser Leseprobe nicht enthalten

Bild 2: Darstellung einer Flachwasserwelle

(Quelle: [Ma04] )

In der Ozeanographie wird zwischen zwei Wellen-Typen unterschieden: der translatorischen Welle (Einzelwelle) und der oszillatorischen Welle. Allgemein kann diesbezüglich gesagt werden, dass die oszillatorische Welle im Tiefwasser und die translatorische Welle im Flachwasser vorkommt.[7] Bild 3 zeigt beide Wellentypen.

Abbildung in dieser Leseprobe nicht enthalten

Bild 3: Translatorische und Oszillatorische Welle

(Quelle: [Ma04] )

3.2.2 Wellenentstehung

Die Wellenhöhe ist nicht konstant. Wellen erwecken bei dem Betrachter den Eindruck, sie würden zufällig entstehen. Dies ist nicht richtig, denn, wie bereits erwähnt, gibt es entscheidende Kriterien, die an der Optik einer Welle großen Einfluss üben. So kann beispielsweise ein Sturm Wellen entstehen lassen, die Strecken von über 10.000 Kilometer zurücklegen können. Erreichen diese eine Küste, erscheinen sie den dortigen Beobachtern als ein rein zufällig entstandenes Phänomen. Neben dem Wind gibt es auch noch andere Umwelteinflüsse, die Wellen entstehen lassen. Zu diesen gehören u.a. Seebeben, Erdrutsche oder Vulkanausbrüche. In dieser Abhandlung wollen wir uns jedoch vor allem auf den Wind als entscheidende Kraft konzentrieren, denn der Wind ist es im Wesentlichen, der für die Entstehung von Ozeanwellen verantwortlich ist.

Winde entstehen durch Luftdruckunterschiede. Durch Reibung wird Energie aus der Luftbewegung ins Wasser bzw. auf die Wasseroberfläche übertragen. Bestimmte Parameter sind: Windgeschwindigkeit, Winddauer, Einwirkstrecke (Fetch-Länge[8]). Die Einwirkstrecke ist allgemein der am schwersten abschätzbare Faktor und wird in der kommenden Simulation keine Rolle spielen.

Tabelle 1 zeigt die Beaufort-Skala. Die Skala verdeutlicht, ab welcher Windstärke Wellen welche Verhaltensmuster aufweisen. Erstellt wurde sie 1806 von Admiral Sir F. Beaufort und war bereits 1990 die am häufigsten verwendete Skala für Windmessungen im Nord-Atlantik. Sie ist für die Wellenbeschreibung ideal, da sie Schaumbildung und Wellenformung mit einbezieht und somit eine sichere Grundlage für die Erzeugung von Wasserbewegung bildet.

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 1: Beaufort-Skala

Wellen haben die Eigenschaft, sich ohne Verlust der eigenen Charakteristika, überlagern zu können (Prinzip der Superposition[9])[10].

Abbildung in dieser Leseprobe nicht enthalten

Bild 4: Überlagerung von Wellenzügen

(Quelle: [Ma04] )

Bild 4 verdeutlicht dieses Merkmal. So kann eine Wasseroberfläche für den Betrachter unregelmäßig und „kabbelig“ erscheinen, jedoch durch Überlagerung mehrerer Wellenzüge durchaus eine spezielle Regelmäßigkeit aufweisen. Dies wird in der späteren Realisierung berücksichtigt.

Weiteres Merkmal von Wellen ist die Ausbreitungsgeschwindigkeit. Je länger eine Welle, desto schneller ist ihre Ausbreitungsgeschwindigkeit. Das heißt, lange Wellen holen kürzere Wellen ein und überlagern sie.

3.2.3 Wellen-Charakteristika

3.2.3.1 Wellenkronen

Wellenkronen können ebenfalls unterschiedliche Eigenschaften haben. Diese Eigenschaften hängen von den gleichen Faktoren ab, die auch für die Optik der gesamten Welle verantwortlich sind, doch vor allem vom Faktor Wind. Wellenkronen gehören zu einer Welle und sind somit unmittelbar abhängig von ihrem Verhalten. Im Wesentlich unterscheidet man zwischen brechenden und nicht brechenden Kronen. Nicht brechende Kronen kommen meist bei Tiefwasserwellen vor, brechende Kronen hingegen entstehen oft bei kabbeligen Flachwasserwellen und bei Brandungswellen. Laut Tabelle 1 fangen Kronen ab Windstärke 8 an zu brechen. Der Wind hat in diesem Falle Geschwindigkeiten von 34 bis 40 Knoten, was in etwa 60 bis 75 km/h entspricht. Allgemein kann gesagt werden, dass Wellenkronen bei einer bestimmten Wellensteilheit beginnen zu brechen. Brechende Wellenkronen sind nicht Ziel dieser Arbeit. Es werden jedoch unterschiedliche Arten von Wellenkronen realisiert werden.

3.2.3.2 Schaum

Schaum ist ein Phänomen, dessen Entstehung und Häufigkeit vor allem von der Wasserqualität und dem Temperaturunterschied zwischen Wasser und Luft abhängt. Verantwortlich für Schaumentwicklung ist wiederum der Wind. Tabelle 1 zeigt, dass bereits ab einer Windstärke von Beaufort 3 (Windgeschwindigkeit in etwa 13 bis 18 km/h) Schaum entstehen kann, eine normale Wasserqualität vorausgesetzt.

Auf Grund der genannten Priorisierung[11], bedingt durch den vorgegebenen Zeitrahmen, wird Schaum nicht realisiert. Schaum spielt bei der Erkennung von Wasser und Wellen keine entscheidende Rolle. Zwar gibt es in der Natur nur äußerst selten Wasserwellen ohne Schaum, doch erscheint eine simulierte Wasseroberfläche ohne Schaum trotzdem noch als Wasseroberfläche. Das Wasser wirkt auf den Betrachter in diesem Falle als eher rein und klar.

3.2.3.3 Wasserspritzer

Wasserspritzer entstehen durch Einwirken von Winden auf Wasseroberflächen und auch durch sog. Brandungswellen. Meistens in Stürmen oder rauer See zu finden, erwecken sie beim Betrachter den Eindruck von starkem Wind und hohen Wellen. Sie bilden sich an den Spitzen der Wasserkronen, dort wo der Wellendurchmesser am geringsten ist. Der Wind muss stark genug sein, um das Wasser von der Welle durch die Luft wegzublasen. Wasserspritzer sind ein Spezialfall, der entweder in Brandungswellen oder stürmischer See zu finden ist. Aus diesem Grunde werden sie auch nicht realisiert.

3.3 Umwelteinflüsse auf Wellen

3.3.1 Sonne

Die Sonne hat auf die Bewegung des Wassers keinen unmittelbaren Einfluss. Die Arbeit beschäftigt sich dennoch mit der Sonneneinwirkung auf Wasser, da die Simulierung einer möglichst realistischen Wasseroberfläche nicht nur durch Bewegung, sondern auch durch Reflexion und Refraktion[12] erreicht wird. Nahezu jeder Ansatz zur Darstellung künstlichen Wassers beschäftigt sich mit diesen Einflüssen.

Abbildung in dieser Leseprobe nicht enthalten

Bild 5: Sonneneinwirkung auf Wasseroberflächen

Treffen Lichtstrahlen auf eine Wasseroberfläche, so teilen sie sich in Abhängigkeit vom Einfallswinkel in reflektierende und nicht reflektierende Strahlen auf. Der eine Teil (die reflektierende Strahlung) „prallt“ von der Oberfläche in einem bestimmten Winkel ab und strahlt zurück in den Himmel. Der andere Teil (die nicht reflektierende Strahlung) dringt durch die Wasseroberfläche hindurch, wird dabei gebrochen und strahlt weiter bis in eine bestimmte Tiefe. Diese Tiefe ist abhängig von mehreren Wasser-Eigenschaften, wie z.B. dem Anteil der Schwebeteilchen im Wasser, dem Salzgehalt des Wassers, der Wassertiefe, der Diffusion (Streuung), der Absorption und der Brechung.

Unter Diffusion ist die Streuung der Lichtstrahlen unter Wasser zu verstehen. Diese Streuung wird durch die „Reinheit“ des Wassers beeinflusst und lenkt die Lichtstrahlen ab. Mit zunehmender Tiefe nimmt somit die Lichtmenge ab.

Absorption beschreibt die Fähigkeit des Wassers Farben aus dem Licht zu entfernen bzw. zu minimieren. Abhängig von der Tiefe verschwinden die Farben, beginnend mit Rot und Orange über Gelb zu Grün. Blau ist am längsten sichtbar. Ab einer gewissen Tiefe erscheint alles in Grau.

Gerade Wasseroberflächen, welche ihre Umwelt häufig extrem spiegeln, erscheinen ohne Reflexion ausgesprochen unrealistisch. Die folgende Abbildung (Bild 6) macht diese Aussage deutlich. Es wird eine Wasseroberfläche aus einer identischen Perspektive einmal mit Reflexion und einmal ohne Reflexion dargestellt. Beim rechten Bild ohne Reflexionen wurde dem Wasser ein Farbton zugewiesen, da es sich sonst um eine farblose, transparente Oberfläche gehandelt hätte.

Abbildung in dieser Leseprobe nicht enthalten

Bild 6: Beispiel für die Wirkung von Reflexionen

Weiterhin fällt auf, dass auch die Konturen der Wellen nicht mehr zu erkennen sind. Wellen äußern sich häufig nicht sofort durch eine sichtbare dreidimensionale Verformung, sondern durch Änderung ihrer Normalen-Vektoren. Dies ist vor allem bei kleineren Wellen der Fall. Der Normalen-Vektor bestimmt u.a. die Richtung der Reflexionen aus Sicht des Betrachters. Sind keine Wellen und keine sichtbaren Strömungen vorhanden, wäre die Oberfläche wie ein Spiegel und würde die Umwelt exakt und ohne Verkrümmungen wiedergeben. Oft sind es kleine Wellen und/oder Strömungen, die die Reflexionen verformen und verkrümmen. Erst durch die Krümmung der Reflexionen werden sie sichtbar.

3.3.2 Wind

Den Einfluss des Windes auf Wasser wurde bereits in den Kapiteln 3.2.2 bis 3.2.3.2 umfassend erläutert.

3.3.3 Gravitation

Die Gravitation hat, wie der Wind, einen entscheidenden Faktor auf die Wellenbildung. Ohne Gravitation würden gar keine Wellen entstehen, denn erst durch die Anziehungskraft müssen Kräfte auf das Wasser wirken, damit Wellen entstehen können. Auf Grund seiner Bedeutung wird auch die Gravitation in der späteren Echtzeit-Darstellung eine Rolle spielen.

4 Technologische Grundlagen

4.1 Einführung

Im vorherigen Kapitel wurden die Grundlagen zum Verständnis von Wasseroberflächen erläutert. Kapitel 4 baut auf Kapitel 3 auf und beschäftigt sich mit der Realisierung der genannten Eigenschaften von Wellen bzw. Wasser in der Computergrafik.

4.2 Verfahren zur Wasser-Berechnung

4.2.1 Einführung

Kapitel 4.2 beschreibt anerkannte Verfahren zur Berechnung und Animation von realistisch wirkenden Wasseroberflächen. Um eine Vergleichs-Basis zu schaffen, werden alle Alternativen relativ ausführlich erläutert, obwohl in der Anwendung lediglich die schnelle Fourier-Transformation[13] implementiert wird. Um zu begründen, weshalb die Wahl auf dieses Verfahren gefallen ist, bedarf es der Erläuterung der alternativen Verfahren.

4.2.2 Gerstner

Der Gerstner-Algorithmus stammt von dem Deutschen Franz Joseph von Gerstner (* 1756; † 1832). In seiner Abhandlung „Theorie der Wellen“, welche er 1804 veröffentlichte, verfasste er einen Algorithmus, der sich der Beschreibung von Wasser-Wellen widmet. Die Wellen basieren auf einfache Sinus-Wellen.

Die erste Anwendung dieses Algorithmus in der Computer-Grafik ist die Arbeit von Fournier und Reeves aus dem Jahre 1986[14]. Diese Arbeit beschreibt ein einfaches Modell für die Oberfläche des Ozeans, welches für die Modellierung und das Rendering der meisten Wellen, die durch Wind erzeugt werden, geeignet ist. Das physische Modell beschreibt die Oberfläche als eine Fläche aus vielen individuellen Punkten. Für jeden Punkt gibt es die zweidimensionale Position x0 = (x0,z0) und die Höhe y0 = 0. Wie bereits erwähnt, basieren Gerstner-Wellen auf einfachen Sinus-Wellen. Um eine komplexere Oberfläche zu gestalten, die den Betrachter nicht sofort an Sinus-Wellen erinnert, wird ein Set von Sinus-Wellen summiert. Die Formeln für die Position und die Höhe lauten dann wie folgt[15]:

Abbildung in dieser Leseprobe nicht enthalten

Formel 1: Gerstner (x0)

Abbildung in dieser Leseprobe nicht enthalten

Formel 2: Gerstner (y0)

Bild 7 zeigt ein Beispiel für die Anwendung des Gerstner-Algorithmus. Es wurden mehrere Sets übereinander gelegt und trotzdem erscheinen die Wellen nicht realistisch.

Abbildung in dieser Leseprobe nicht enthalten

Bild 7: Gerstner-Wellen

Gerstner-Wellen ähneln Ozean-Wellen bereits sehr stark, doch gibt es heute andere, realistischere Verfahren, um Wellen zu erzeugen. Diese Verfahren basieren auf statistischen Werten, welche von ozeanographischen Instituten verfasst wurden und Algorithmen, wie der schnellen Fourier-Transformation, auf die später noch im Detail eingegangen wird.

Der Gerstner-Algorithmus wird im späteren Programm keine Anwendung finden und wird aus diesem Grund auch nicht näher erläutert.[16]

4.2.3 Gleichungen von Navier-Stokes

Die Gleichungen sind benannt nach dem Franzosen Claude Louis Marie Henri Navier (* 10. Februar 1785 in Dijon, Frankreich; † 21. August 1836 in Paris) und dem Briten George Gabriel Stokes (* 13. August 1819 in Skreen, Irland; † 1. Februar 1903 in Cambridge). Beide entwickelten unabhängig voneinander die Gleichungen in der ersten Hälfte des 19. Jahrhunderts.

Die Navier-Stokes-Gleichungen (im Folgenden kurz: NSE) beschreiben das Verhalten von Strömungen in Flüssigkeiten und Gasgemischen, welche der Kategorie der Newtonschen Fluide angehören. Unter Newtonschen Fluiden versteht man Flüssigkeiten und Gasgemische, dessen Scherspannung proportional zur Verzerrungsgeschwindigkeit ist. Die meisten uns bekannten Flüssigkeiten verhalten sich dementsprechend, eine Ausnahme bildet z.B. Ketchup[17].

In symbolischer Vektorschreibweise lautet die Gleichung wie folgt[18]:

Abbildung in dieser Leseprobe nicht enthalten

Formel 3: Navier-Stokes-Gleichung

[...]


[1] Siehe Glossar „Geoinformationssystem“

[2] Siehe Glossar „Echtzeit“

[3] Siehe dazu auch Kapitel 6.2.2

[4] Siehe Glossar „Echtzeit“

[5] Siehe Glossar „Frame“

[6] Siehe dazu vertiefend Kapitel 4.2.3

[7] Siehe dazu auch [Ma04]

[8] Vgl. hierzu vertiefend [Ma04]

[9] Siehe dazu vertiefend Kapitel 4.2.5 „Fast Fourier-Transformation“

[10] Siehe dazu auch [Ma04]

[11] Siehe Kapitel 1.1

[12] Siehe dazu vertiefend Kapitel 4.3.2 „Refraktion, Reflexion“

[13] Siehe Kapitel 4.2.5

[14] Siehe dazu auch [FourRee86]

[15] Vgl. [Tess99]

[16] Vgl. hierzu vertiefend [FourRee86] und [Tess99]

[17] Vgl. dazu [WikiNew04]

[18] Vgl. dazu [WikiNav04]

Ende der Leseprobe aus 100 Seiten

Details

Titel
Entwurf und Implementierung eines Algorithmus zur 3D-Darstellung eines Multi-Resolution-Modells von Wasseroberflächen in Echtzeit
Hochschule
Hochschule Bremerhaven
Note
1,0
Autor
Jahr
2004
Seiten
100
Katalognummer
V77738
ISBN (eBook)
9783638780629
ISBN (Buch)
9783638780186
Dateigröße
2553 KB
Sprache
Deutsch
Schlagworte
Entwurf, Implementierung, Algorithmus, Multi-Resolution-Modells, Wasseroberflächen, Echtzeit
Arbeit zitieren
Florian Schlüter (Autor), 2004, Entwurf und Implementierung eines Algorithmus zur 3D-Darstellung eines Multi-Resolution-Modells von Wasseroberflächen in Echtzeit, München, GRIN Verlag, https://www.grin.com/document/77738

Kommentare

  • Noch keine Kommentare.
Im eBook lesen
Titel: Entwurf und Implementierung eines Algorithmus zur 3D-Darstellung eines Multi-Resolution-Modells von Wasseroberflächen in Echtzeit



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