Interaktive Visualisierung von virtuellen Booten und Yachten

Entwicklung einer immersiven, dynamischen Realität unter Verwendung der Game Engine Unity3D


Tesis (Bachelor), 2014

126 Páginas, Calificación: 1,3


Extracto


Inhaltsverzeichnis

Zusammenfassung

Abkürzungsverzeichnis

1 Einleitung
1.1 Motivation
1.2 Problemstellung
1.3 Zielsetzung
1.4 Organisation der Arbeit
1.5 Was nicht behandelt wird

2 Anforderungen an die Visualisierung
2.1 Visualisierung Wetter
2.2 Dynamisches Wasser
2.3 Yachtvisualisierung
2.4 Immersion
2.5 Zusammenfassung

3 Unity3D
3.1 Interface
3.2 Szenenaufbau
3.3 GameObject
3.4 Component
3.5 Scripting
3.6 Tools
3.6.1 Terrain Engine
3.6.2 Particle System
3.6.3 ShaderLab
3.6.4 Animation Tool

4 Implementierung
4.1 Island
4.2 Ocean
4.2.1 Ocean Indie (Script)
4.2.2 Ocean Control (Script)
4.3 Ansatz Ocean Own
4.3.1 Mesh Waves (Script)
4.3.2 Ocean Position (Script)
4.3.3 Wave Floater (Script)
4.4 Yacht
4.4.1 Buoyancy Indie (Script)
4.4.2 Particle Effects
4.4.3 Yacht Splash Speed (Script)
4.5 Audio
4.5.1 Sound in Unity3D
4.5.2 Yacht Sounds (Script)
4.6 Player
4.6.1 Character Motor (Script)
4.6.2 FPSInput Controller (Script)
4.6.3 Main Camera
4.6.4 Position Control (Script)
4.7 Animation
4.7.1 iTween Animation (Script)
4.7.2 Yacht Orientation (Script)
4.8 Weather
4.8.1 UniSky
4.8.2 Weather Control (Script)
4.9 Oculus Rift
4.9.1 Implementierung in Unity3D
4.9.2 Cam Switcher (Script)

5 Video Beispiele

6 Diskussion und Ausblick

Eidesstattliche Erklärung

Anhang

A Character Motor Script

B DVD

Abbildungsverzeichnis

Quellcodeverzeichnis

Literaturverzeichnis

Zusammenfassung

Um auf dem globalen Markt konkurrenzfähig zu bleiben, sind Unternehmen angetrieben ihren Pro duktentwicklungsprozess stetig zu verbessern und zu beschleunigen. Dann führt Innovation auch zu nachhaltigem Erfolg. Der Einsatz virtueller interaktiver Technologien ist in heutigen Produktionsum- gebungen ein unverzichtbares Entwicklungs- und Evaluierungswerkzeug zur Gestaltung effektiver und effizienter Produktionsprozesse (Sturm, 2009). In diesem Kontext kommen virtuelle Prototypen in Form von dreidimensionalen (3D-) Modellen und Simulationen als kostengünstige Alternative zum Bau von physikalischen Prototypen oder Mockups verstärkt zum Einsatz. Seit einiger Zeit ergänzen und ersetzen Anwendungen der computervermittelten Realität, insbesondere virtuelle Prototypen, in vielen Industriebranchen die Produktionsschritte zwischen Konstruktion und Fertigung neuer Produkte. Intention vorliegender Bachelorthesis ist es, das enorme Potential dieser Technologie für den Yacht- und Schiffbau aufzuzeigen und anhand der Entwicklung einer immersiven, dynamischen Umgebung für die interaktive Visualisierung eines virtuellen 3D-Yachtmodells praktisch zu verdeutlichen. Es soll ein rekonfigurierbarer, flexibler Ansatz geschaffen werden, 3D-Boot- und Yachtmodelle in einer voll-immersiven Head Mounted Display-Umgebung real explorierbar zu machen. Nach der Evaluation der Anforderungen für eine realistische Simulation und anschliessender Einführung in Funktionsweise und Eigenschaften der verwendeten Software wird die Implementierung einer virtuellen Realität unter Verwendung der Game Engine Unity3D dokumentiert.

Abkürzungsverzeichnis

Abbildung in dieser Leseprobe nicht enthalten

1 Einleitung

„V [irtual] R [eality] is now really real” (Brooks Jr, 1999, S. 16).

Virtual Reality (d. Virtuelle Realität) entstand als ein Teilbereich der Mensch-Maschine-Kommunikation und deren Anwendungen in den 80er Jahren des letzten Jahrhunderts. Doch erst durch die rasante Entwicklung der Computertechnologie in den vergangenen Jahrzehnten, ist die Vision der Virtuellen Realität (VR) jetzt erlebbare Wirklichkeit (McLellan, 1996). Der Wissenschaftler und MIT1 -Absolvent Ivan E. Sutherland stellte bereits 1965 in ”The Ultimate Display” seine Vision eines VR-Systems dar. Er beschrieb den Computerbildschirm als ein Fenster, durch das die virtuelle Welt erblickt wird.

Besondere Herausforderung der Computergrafik ist es diese virtuelle Welt real aussehen, klingen und in Echtzeit handeln zu lassen. Dabei sollen so viele Sinne wie möglich angesprochen werden (Sutherland, 1965). Sutherland sagte voraus, dass die Computerwissenschaft früher oder später im Stande sein wird durch virtuelle Erfahrungen die Sinne zu überzeugen. Mit der Erfindung des Head Mounted Displays, einer Datenbrille zur Visualisierung dreidimensionaler Umgebungen, brachte Sutherland die VR-Entwicklung entscheidend voran (McLellan, 1996). So bezeichnet Virtual Reality eine Technologie, die versucht, dem Benutzer eine vollständige Immersion in einer interaktiven computergenerierten Umwelt zu bieten (Steurer, 1996). Dabei beschreibt das Konzept der Immersion das Eintauchen in die virtuelle Realität. Wie stark ein Individuum in die dargestellten Inhalte eines digitalen Mediums eintaucht, hängt davon ab wie viele Sinne durch das Medium stimuliert werden und wie realistisch diese Eindrücke sind (Butz, Malaka & Hußmann, 2009). Der Filmtheoretiker Bela Balazs beschrieb 1938 in einem Text Immersion als das Eintauchen in eine künstliche Welt durch Auflösung der räumlichen Grenzen (Balazs, 1938). Balazs prägte diese Bezeichnung aus Sicht der damaligen Medienerlebnisse Film, Theater und Oper (Stapelkamp, 2010). In Bezug auf das Medium digitaler Film fördern beispielsweise eine hochwertige Bild- und Tonqualität das Immersionserleben.

Dennoch bleibt der Rezipient als Betrachter des Films passiv, er kann sich nicht bewegen bezie- hungsweise mit dem digitalen Inhalt interagieren. In der Virtuellen Realität will man diese Grenzen durchbrechen und es den Nutzern ermöglichen sich frei in einer Szene zu bewegen (Butz et al., 2009). Immersion ist eng verknüpft mit dem Begriff Präsenz (engl. Presence). Nach Slater & Wilbur (1997) bezeichnet Presence das psychische, subjektive Erleben, sich innerhalb der virtuellen Umgebung zu befinden (”being there”). Immersion beschreibt die mediale Qualität des technischen Systems, die von außen auf den Nutzer einwirkt und durch die Sinnesorgane wahrgenommen wird. Das Präsenzerleben setzt demnach die technische Realisierung von Immersion als notwendig voraus (Slater & Wilbur, 1997).

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 1.1: Ivan E. Sutherland, Head Mounted Display, 19681

1.1 Motivation

Neueste Entwicklungen im Bereich der Informations- und Kommunikationstechnologien zeigen ein immer stärkeres Zusammenwachsen der realen Welt mit virtuellen Umgebungen. War dies in jüngster Vergangenheit wenigen Forschern vorbehalten, so bringen mittlerweile Entwicklungen wie das Google Glass 2 oder das Oculus Rift 3 virtuelle Umgebungen und Immersionserleben in unseren Alltag. Der zunehmende globale Wettbewerb bringt viele Unternehmen bei der Entwicklung neuer Produkte an Ihre Grenzen. Zudem wird es für Unternehmen zunehmend schwieriger die Kundennachfragen zu erfüllen und konkurrenzfähig zu bleiben. Der Zeit- und Kostendruck in der Produktentwicklung zwingt die Unternehmen dazu sich neuen, aufstrebenden Technologien zuzuwenden (Sturm, 2009).

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 1.2: Google Glass1

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 1.3: Oculus Rift2

Beispiele für visuelle Ausgabegeräte An dieser Stelle verfügt die VR-Technologie über enormes Potential zur problemlösenden, kostensparen- den, innovativen und erfolgreichen Anwendung in verschiedensten Bereichen der Produktionstechnik (Mujber, Szecsi & Hashmi, 2004). VR erobert neben Anwendungsgebieten wie der Wissenschaft, Medizin, Psychologie, Architektur und dem Bildungswesen verstärkt den Bereich der Produktentwick- lung und -fertigung im Rahmen des Virtual Prototyping. Dabei werden Aussehen und Eigenschaften eines physikalischen Modells durch Computer virtuell simuliert. In dessen Kontext werden virtuelle Prototypen bereits seit Jahren eingesetzt und ergänzen darüber hinaus die klassische Vorgehensweise des Baus von physikalischen Modellen nicht nur, sondern erweitern die Produkttentwicklung als digitale Entwicklungs- und Evaluierungswerkzeuge in gewinnbringendem, stetig wachsenden Umfang (Sturm, 2009). Thomas Reiber, Geschäftsführer von IC.IDO3 , Pionier und global führender Anbieter von Virtual Reality und Virtual Engineering Lösungen, erklärt und verdeutlicht, dass die VR-Technik durch neue, speziell auf die Bedürfnisse der Industrie angepasste Funktionen nun vor einer breiten industriellen Anwendung steht. In Folge der rasanten Entwicklung der VR-Technologie, erkennen nun immer mehr Unternehmen das Potential des VR-Einsatzes und die damit verbundenen Wettbewerbs- vorteile (Daemisch, o. J.). Zur visuellen Darstellung virtueller Szenen kommen VR-Systeme in Form von dreidimensionalen Modellen im Desktop-Bereich bis hin zu voll immersiven Projektionssystemen zum Einsatz. Mittels Head Mounted Displays (HMD) oder Caves, Installationen, die mit Projektionen um den Nutzer herum eine virtuelle Szene aufbauen, kann das Eintauchen in virtuelle Realtäten ermöglicht werden (Brooks Jr, 1999).

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 1.4: CAVE-Umgebungen zur Projektion virtueller Realität1

In vielen Industriebranchen ist die Technologie der computervermittelten Realität wichtiger Bestand- teil des Entwicklungs- und Produktionsprozesses geworden. Auf diese Weise ist es möglich, trotz der heutigen Anforderungen einer individualisierten aber auch flexibilisierten Großserienproduktion, Beschäftigte, Kunden sowie Geschäftspartner in den Entwicklungsprozess miteinzubeziehen und deren Input gewinnbringend zu nutzen (Mujber et al., 2004). Prototypen können in den verschiede- nen Stadien des Produktionsprozesses virtuell exploriert, erkundet und getestet werden. Geringere Erstellungskosten der virtuellen gegenüber den physikalischen Prototypen und ein enormer Informati- onsgewinn in frühen Stadien der Entwicklung eines Produktes sind nur zwei der Vorteile des Einsatzes computervermittelter Realität.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 1.5: Vergleich Klassische und Virtuelle Produktentwicklung1

Das Potential der VR-Technologie ist unübersehbar. Dennoch gibt es Bereiche, in denen VR- Umgebungen noch unbekanntes Terrain darstellen. Im Yacht- und Schiffbau kommen neben physi- kalischen Prototypen viele digitale Entwicklungs- und Designanwendungen zum Einsatz, allerdings sind Technologien der Virtual Reality bislang noch ungenutzt. Gerade hier bietet die VR-Technik zahlreiche Möglichkeiten den Produktionsprozess positiv zu verändern und letzten Endes für Kunden und das Unternehmen neue Wege zu eröffnen. Virtuelle Prototypen, die mit realen Bewegungen und realistischen Sinneseindrücken exploriert werden können, steigern Möglichkeiten der Entwicklung und der Evaluation. Die Erstellung eines 3D-Modells ist nicht nur überwiegend kostengünstiger, sondern überzeugt durch die Eigenschaft schnell an aufkommende Anforderungen angepasst wer- den zu können, was bei physikalischen Modellen mit enorm höheren Zeit- und Kostenaufwand verbunden ist (Mujber et al., 2004). Vor allem im Yacht- und Schiffbau beziehen sich wichtige Designentscheidungen auf die Wahrnehmung von Raum, Größe und Bewegung. Hier bietet Virtual Reality zukunftsorientierte Anwendungsmöglichkeiten, wobei integrierte, flexible und rekonfigurierbare Ansätze für die Produktentwicklung entstehen. Neben der Visualisierung des Modells, das für Desi- gnentscheidungen grundlegend und notwendig ist, ergeben sich durch Navigation und Interaktion mit dem 3D-Modell neue Perspektiven, die für die Produktentwicklung bedeutend sind. Beispielsweise kann der Nutzer (engl. User) Inventar verschiedenartig anordnen und verändern. Auch in Bezug auf Kosten und Aufwand, die mit dem Bau und der Nutzung physikalischer Prototypen verbunden sind, ergeben sich mit der Verwendung virtueller Entwicklungen kostensparende Vorteile. So kann bereits vor der Anfertigung eines physikalischen Prototypen am virtuellen Modell ausgiebig evaluiert und angepasst werden (Mujber et al., 2004). Ohne Einschränkung können beispielsweise verschiedene Designentscheidungen umgesetzt werden ohne aufgrund finanzieller Einschränkung frühzeitig eine spezielle Richtung einschlagen zu müssen. Komplexe Designkomponenten können flexibler organisiert und integriert werden. Das somit erhöhte Maß an Kreativität, Entwicklungsfreiheit und erweiterten Testmöglichkeiten ist ein bedeutender Bestandteil des innovativen Fortschritts.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 1.6: Physikalisches Mockup zur realen Begehung1

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 1.7: Virtuelles 3D-Modell2

Diese Bachelorthesis beschreibt ein Projekt, welches das Potential der VR-Technologie für den Yacht- und Schiffbau aufzeigt. Mittels spezieller Software wird eine virtuelle Welt entwickelt, innerhalb dieser der Nutzer ein dreidimensionales Modell einer Yacht interaktiv begehen kann. Ziel ist es den User in diese virtuelle Realität vollständig eintauchen zu lassen. Durch reale Bewegungen wie Gehen kann er sich auf der Yacht frei bewegen und sie erkunden. Von der virtuellen Umgebung ausgehende äußere Sinneseindrücke sollen dem User das Gefühl vermitteln sich auf dieser Yacht, die wiederum mit der virtuellen Wasser- und Inselumgebung interagiert und so den Grad der Immersion erhöht, zu befinden. Dynamisches, durch Tastendruck veränderbares Wetter sowie darauf angepasste Audiosequenzen wirken zusätzlich auf das Realitätsempfinden. Die menschlichen Sinnessysteme sollen so natürlich wie möglich angesprochen werden. Ohne physikalische Grenzen oder Gefahren kann die virtuelle Welt interaktiv erforscht werden. Als Produktentwickler oder auch als Kunde generiert der User durch diese virtuelle Erfahrung wichtige Informationen, die in zukünftige Schritte der Entwicklung integriert und effizient verarbeitet werden können. Einerseits wird so die Übertragbarkeit von Änderungsvorschlägen von Endkunden verbessert, andererseits werden die Phasen der Produktentwicklung durch die Integration konfigurierbarer, anpassungsfähiger virtueller Prototypen in eventueller Kombination mit der Verwendung physikalischer Prototypen optimiert.

1.2 Problemstellung

Die Entwicklung einer interaktiven virtuellen Umgebung stellt im Allgemeinen hohe Anforderungen an die Hardwareressourcen und das Grafiksystem. Eine Grundvoraussetzung für die immersive Inter- aktion mit der virtuellen Umgebung ist die Echtzeit-Darstellung, die außerordentliche Rechenleistung erfordert (Beier, 2000). Die Visualisierung einer dynamischen 3D-Welt, die in Echtzeit berechnet und angezeigt wird, steht somit der performanten, visuell ansprechenden Ausgabe gegenüber. Die detailreiche Darstellung der Inhalte einer virtuellen Umgebung erfordert die Verwendung hochaufge- löster Polygonnetze (engl. Meshes) und Texturen. Die Anzahl der Polygone ist ein kritischer Faktor für jede VR-Anwendung, denn dieser bestimmt die Rechengeschwindigkeit. Für das Rendern in Echtzeit müssen mindestens 20 bis 30 Bilder pro Sekunde (engl. Frames Per Second) berechnet werden (Brooks Jr, 1999). Das bedeutet je höher die Auflösung, desto höher auch die Rechenlast und umso leistungsfähiger muss auch die Hardware sein. Für die Computergrafik ist die dynamische Simulation eine sehr anspruchsvolle Thematik, da die jeweiligen 3D-Objekte, wie eingangs erwähnt, in Echtzeit bewegt werden müssen (Chen, 2013). Das Rendern von dynamischen Elemente wie eines Wellen generierenden Ozeans mit Reflexion und Refraktion oder verschiedener Wetterzyklen, erfordert die Ausstattung mit spezieller Grafikhardware. Die Qualität einer Simulation wird unter Anderem durch den visuellen Effekt bestimmt, wie realistisch die Simulation verglichen mit der realen Welt ist. Da in einer 3D-Szene zur gleichen Zeit viele optisch hochwertige, dynamische Inhalte gerendert werden müssen, sind die Leistungsgrenzen der Hardware schnell erreicht. Zur Erhaltung der Performanz können nicht alle Objekte derart detailreich gestaltet werden. Beispielsweise müssen Ressourcen freigehalten werden, um das höher aufgelöste 3D-Modell, das virtuell begehbar sein soll, entsprechend detailgenau darstellen zu können. Die Detailgenauigkeit, sowie die realitätsnahe Abbildung sind hier nicht nur für das Immersionserleben besonders wichtig, sondern auch für die Nutzung der VR-Simulation im Produktionsprozess. Um die virtuelle Geometrie erleben und mit dieser interagieren zu können, muss die virtuelle Welt außerdem mit Informationen, die das Aussehen und Verhalten der Objekte innerhalb der VR, also die Farben, Reflexionseigenschaften, Texturen, Beleuchtungsumgebung, Animationen, Interaktionen, Geräusche sowie Verhalten und Funktionsweisen beschreiben, vervollständigt werden (Beier, 2000). Rendering Engines wurden über die Zeit erheblich verbessert, sodass die Komplexität einer virtuellen Welt selten durch die Technologie im Allgemeinen limitiert wird, sondern durch die Kosten dieser Technologie. Folglich ist die visuelle Approximation in diesem Projekt auch im Hinblick auf diese Thematik zu beurteilen. Zusammenfassend lässt sich sagen, dass die Entwicklung einer virtuellen Realität mit dynamischen Inhalten und der Möglichkeit zur Interaktion eine arbeits- und zeitintensive Herausforderung ist, die viele unterschiedliche Disziplinen vereint. Im weiteren Verlauf werden diese erläutert.

1.3 Zielsetzung

Ziel dieser Bachelorthesis ist ein konzeptioneller Ansatz zur Erstellung interaktiver Umgebungen zur Visualisierung und Simulation von virtuellen Booten und Yachten. Das Potential und die Einsatzmög- lichkeiten virtueller Prototypen im Schiff- und Yachtbau soll schließlich klar werden. Die Implementie- rung verschiedener dynamischer Elemente zur realitätsnahen Simulation wird veranschaulicht. Dabei steht die immersionsunterstützende Erreichung hoher optischer Qualität in Echtzeit-Darstellung im Vordergrund. Hierzu werden zuerst die Anforderungen der dynamischen Szeneninhalte unter Berück- sichtigung der Performance evaluiert und innerhalb der Entwicklungsumgebung Unity3D prototypisch implementiert. Eine hohe realistische Approximation des Verhaltens der dargestellten Umgebung sowie die Interaktion mit dem 3D-Modell, soll dem User das Eintauchen in die virtuelle Realität ermöglichen. In Anlehnung an Murray ist das [ultimative] Ziel ein Zustand, in dem der Spieler Realiät nicht von virtueller Realität unterscheiden kann (Murray, 1997). Die softwaretechnische Realisierung auf Basis der kostenfreien Version der Game Engine Unity3D soll exemplarisch vermitteln, welche Thematiken bei der Entwicklung einer interaktiven Yacht-Simulation zum Tragen kommen und wie diese erfasst werden können. Sie soll Limitierungen herausarbeiten und die zur Weiterentwicklung erforderlichen Fähigkeiten und Kenntnisse aufzeigen.

1.4 Organisation der Arbeit

In Kapitel 2 wird zunächst auf die Anforderungen an die Visualisierung der darzustellenden Szenenin- halte eingegangen. Es werden mögliche Ansätze zur Simulation vorgestellt und die Bedeutung der Immersion in diesem Kontext aufgezeigt. Anschließend wird in Kapitel 3 die Game Engine Unity3D, die Programminhalte und die Funktionsweise erklärt. Das Kapitel 4 dokumentiert daraufhin die Implementierung der Elemente

- Island
- Ocean
- Yacht
- Audio
- Player
- Animation
- Weather

sowie die Anpassung zur finalen Nutzung mit dem Oculus Rift. In Kapitel 5 präsentieren Video Beispiele die Ergebnisse dieses Projektes. Danach werden in Kapitel 6 die wesentlichen Aspekte der Bachelorthesis zusammengefasst und Möglichkeiten zur Optimierung und Weiterentwicklung angesprochen.

1.5 Was nicht behandelt wird

Diese Bachelorthesis dokumentiert die Entwicklung einer interaktiven, virtuellen Umgebung, die verschiedene dynamische Elemente vereint. Eine Insel mit Vegetation, einen offenen Ozean mit variabler Wellenstärke, eine animierte Yacht sowie dynamisches Wetter, das durch User Input (Benutzereingabe) beeinflusst werden kann. Jedes dieser Elemente weist eine eigene Geometrie auf, besitzt unterschiedliche Eigenschaften und Verhaltensweisen, die in der finalen Szene bis ins Detail aufeinander angepasst und abgestimmt werden müssen. Die Thematiken und Problemstellungen, die dabei zum Tragen kommen, bilden bereits gesondert überwiegend komplexe Aufgabenfelder und einen Ansatz zur tiefergehenden Betrachtung und Bearbeitung in künftigen Arbeiten. Aufgrund dieses interdisziplinären Charakters können nicht alle Themengebiete vollumfänglich bearbeitet werden. Einige Bereiche werden daher nur einführend behandelt oder angerissen. Im praktischen Teil der Visualisierung des Projektes liegt das Hauptaugenmerk auf der Erstellung und funktionsfähigen Verbindung der dynamischen Szenenelemente. Besonderheiten wie das Verhalten der Wellen am Strand oder die Schaumbildung bei starkem Wellengang werden nicht berücksichtigt. Alle vorgenommenen Einstellungen, zum Beispiel zur Darstellung der Wetterereignisse, zeigen nur Einstellungsmöglichkeiten und können je nach Anforderung verändert und weitergehend angepasst werden. An einigen Stellen wird C# Script Code eingebunden, der inhaltlich erläutert wird. So sollen die Funktionsweise und Zusammenhänge verdeutlicht werden. Das technische Verständnis zur Editierung von Script Code wird vorausgesetzt.

2 Anforderungen an die Visualisierung

Umfangreiche Programmierkenntnisse sowie Hardwarekomponenten mit entsprechend gut dimen- sionierter Rechenleistung vorausgesetzt, stellt die immersive Visualisierung von virtuellen Booten und Yachten zahlreiche Anforderungen an die Dynamik und Interaktivität. Eine visuell ansprechende Approximation an reale Phänomene in einer virtuellen Welt erfordert neben der fotorealistischen Darstellung der Szenenobjekte auch die Berücksichtigung und Übertragung physikalischer Aspekte und Gesetzmäßigkeiten der realen in die virtuelle Welt. So müssen bei der Entwicklung bestimmte Verhaltensweisen und Kräfte in Bezug auf Bewegung, Kollision und Deformation von Festkörpern, Partikeln und Flüssigkeiten berücksichtigt werden. Szenenobjekte werden mit Eigenschaften wie zum Beispiel der Schwerkraft ausgestattet, um das Verhalten in der Realität nachzuempfinden. Die fotorealististische Darstellung erfordert außerdem eine visuell plausible Beleuchtung und Schattierung der Szenenelemente. Zur Vervollständigung der virtuellen Umgebung und den wirkungsvollen Einfluss auf das Präsenzerleben ist die Einbindung von Audioelementen unumgänglich. Denn verräumlichter Sound führt, in Anlehnung an Slater & Wilbur, zu einem höheren Präsenzerleben (Slater & Wilbur, 1997).

2.1 Visualisierung Wetter

Die Diskussion unter Spieleentwicklern, Theoretikern und Kritikern um die Frage welche Merkmale besonders wichtig bei der Entwicklung einer realistischen virtuellen Welt sind, fördert überwiegend die Antworten Grafik und Animation zu Tage. Eine überzeugende Wettersimulation wirkt aber nicht nur besonders realistisch durch die hochwertige grafische Erscheinung. Die dynamische Simulation macht die virtuelle Szene grundlegend ”echter”, denn sie bietet eine weniger vorhersehbare und dadurch fesselndere Erfahrung für den Nutzer. So kann die Illusion mehr Tiefe erreichen. Wetterszenarien wie Donner, Wind, animierte Wolken unterstützen die Wirkung der VR als lebendige, interaktiv erfahrbare Welt (Barton, 2008). Die Anforderungen an die Visualisierung des Wetters liegen unter Anderem in der dynamischen und optischen Erscheinung der Wetterelemente. Das Wetter mit unterschiedlichen Ausprägungen soll realen Wetterereignissen gleichen. Zur Bildung des Wetters müssen verschiedene Wettersituationen zur gleichen Zeit entstehen und ineinander übergleiten. Ein Tag-/Nachtzyklus soll mit definierter Geschwindigkeit den Einsatz des Sonnenunter- und Sonnenaufgangs steuern und die Stärke der Beleuchtung in Abhängigkeit der Tageszeit verändern. Dabei muss das Element Licht stimmig eingesetzt werden. Der Horizont soll sich in Farbe und Beleuchtungsintensität dem Wetterereignis anpassen. Animierte Wolkenpartikel in variierender Anzahl und Größe, Wasserpartikel und Soundelemente sind wichtige dynamische Bestandteile der unterschiedlichen Wetterereignisse von klar und sonnig über bewölkt, regnerisch bis zum Unwetter mit Blitz und Donner, die aufeinander angepasst werden müssen. Die Eigenschaften des Wetters (Stärke, Geschwindigkeit, Dauer) lassen sich individuell festlegen. Um Wetterphäomene realistisch darzustellen, ist es wichtig die Entwicklung des Wetters zu erkennen. Die Wolken sollen in Echtzeit passend zum Wetterzustand generiert werden (fade-in/ease-out) und sich, je nach Windstärke, schneller oder langsamer am Himmel bewegen. Die Komplexität von Wetterphänomenen erfordert komplexe Algorithmen für die hinreichend ansprechende Simulation. Die Entwicklung eines zusammenhängenden, realistischen Wettersystems wird unter Verwendung von UniSky, einem Tool von Six Times Nothing 1 zur Entwicklung visueller Effekte realisiert. Auf Basis eines Application Programming Interface2 (API), einer Programmierschnittstelle, ermöglicht dieses Tool die einzelnen Wetterelemente gezielt über Scripte anzusteuern. Diese Verbindung der Softwarekomponenten steigert die Modularität und verringert die Gesamtkomplexität3.

2.2 Dynamisches Wasser

Jeden Tag kommt der Mensch in Kontakt mit Wasser. Im täglichen Leben unverzichtbar und allge- genwärtig, stellt die Simulation von Wasser und Flüssigkeiten aufgrund seiner komplexen Dynamik eine große Herausforderung für die Computergrafik dar. Jeffrey Katzenberg, Produzent des Animati- onsfilms ”Shrek” antwortete auf die Frage was die größte Herausforderung des Films war, dem sich das Computergrafik-Team gegenüber sah:

„It’ s the pouring of milk into a glass” (Hiltzik & Pham, 2001, S. 2).

Die Problematik der Wassersimulation in der Computergrafik besteht in der hohen Komplexität der Eigenschaften von Wasser bzw. Flüssigkeiten. Die Schwierigkeiten bestehen in der Repräsentation der dreidimensionalen Strömungseigenschaften, der Dynamik der Oberfläche und einer Vielzahl optischer Materialeigenschaften. Um einen realsitischen Eindruck zu vermitteln, gilt es diese Schwerpunkte bei der Repräsentation zu berücksichtigen. Die realitätsnahe Animation unter Berücksichtigung der genannten Komponenten ist rechentechnisch kostenintensiv und in der Regel nicht in Echtzeit realisierbar (Cords, 2009). Daher erfolgt die realistische Darstellung dynamischen Wassers in virtuellen Umgebungen mit approximativen Methoden, die das physikalische Verhalten von Wasser mittels kom- plexer Algorithmen nachempfinden. Aber auch die realitätsnahe Approximation geht mit entsprechend hohen Anforderungen an die Hardwarekomponenten einher. Um dennoch überzeugende Ergebnisse in interaktiven Umgebungen zu erhalten, muss ein Kompromiss zwischen der Qualität der Simulation und der Peformanz eingegangen werden. Zu beachten ist außerdem, dass realistische Ergebnisse neben der physikalisch-basierten Simulation die gleichzeitige Darstellung der individuellen, optischen Eigenschaften von Wasser erfordern. Nur die Berechnung in Echtzeit, mit einer Bildwiederholrate von mindestens 25 Frames Per Second (Brooks Jr, 1999) wird der Dynamik des Wassers gerecht und ermöglicht die virtuelle Interaktion (Liebmann, 2013). Eine große dynamische Wasserfläche, wie zum Beispiel ein Ozean, ist durch permanente Veränderung der Oberfläche (Wellenbewegungen) und bestimmte optische Eigenschaften im Hinblick auf die Reflexion, Brechung und Absorption von Lichtstrahlen definiert (Cords, 2009). Im Rahmen dieser Bachelorthesis soll eine realistische und performante Simulation eines Ozeans mit Objekt-Interaktion (Boot/Yacht) realisiert werden. Neben der visuell ansprechenden Darstellung unter approximativer Implementierung der optischen Effekte Reflexion und Brechung, sollen Wellen generiert werden, deren Ausprägungen veränderbar sind. Die charakteristischen Wellenbewegungen müssen auf Basis spezieller Algorithmen berechnet werden. Dabei ist zu beachten welcher Wellentyp dargestellt werden soll. So werden Wassereffekte oder ruhige, flächig begrenzte Wasserflächen auf Basis anderer Techniken simuliert als ein offener, sich unendlich erstreckender Ozean mit stürmischen Wellengang. Das bedeutet eine einzige Repräsentationsmethode genügt nicht den Anforderungen einer interaktiven Umgebung. Die Simulation soll letztlich das Realitäts- und Immersionsempfinden des Users positiv beeinflussen. Zur Wassersimulation existieren verschiedene Ansätze. Den zahlreichen wissenschaftlich-technischen Ansätzen gehen langjährige Forschungen voraus. Die Ergebnisse und die hervorgebrachten Methoden unterliegen der fortlaufenden Weiterentwicklung. Umfangreiche physikalische und computertechnische Kenntnisse sind notwendig, um diese Entwicklungen voranzutreiben. Im Anschluss wird eine kurzer Überblick in grundlegende Methoden zur Berechnung von Wellen und der realistischen Darstellung in der Computergrafik gegeben.

Navier Stokes Physikalisch korrektes Strömungsverhalten in Flüssigkeiten kann durch Navier- Stokes Gleichungen beschrieben werden. Dieser Ansatz eignet sich für ein begrenztes Wasservolumen (Enright, Marschner & Fedkiw, 2002). Die Simulation eines offenen Ozeans auf Grundlage von Navier-Stokes Gleichungen würde die verfügbaren Rechenkapazitäten weit überschreiten und ist daher nicht für interaktive Anwendungen geeignet (Tessendorf, 2001). Aus diesem Grund wird das physikalische Verhalten von Wasser für virtuelle Umgebungen nachempfunden und physikalisch- basiert simuliert. Die physikalischen Daten zur Wassersimulation benötigen eine Oberfläche für die Darstellung und Anwendung. Die Wahl eines geeigneten Simulationsansatzes bezieht sich auf die dem virtuellen Wasser zugrunde liegende Geometrie, die zuvor festgelegt und verstanden werden muss. In der Computergrafik wird Wasser meist durch ein Mesh repräsentiert, dessen Knotenpunkte (engl. Vertices) durch Funktionen manipuliert werden können. Das heißt die Wasseroberfläche wird durch eine Menge diskreter Netzpunkte repräsentiert (Yeo, Cha & Mun, 2012). Die Simulation eines offenen, unendlichen Ozeans macht den Einsatz eines Meshes mit fest definierter Position und gleichbleibend hoher Auflösung aufgrund der Rechenintensivität unmöglich. Das gesamte Wasservolu- men muss zu jedem erzeugten Frame abgetastet werden. In interaktiven Umgebungen ist daher ein blickpunktabhängiges Verfahren vorzuziehen. Die Grundidee hierbei ist eine adaptive Simulation in einem definierten Bereich um den Betrachter (Cords, 2009). Diese beinhalten die Generierung eines dynamischen Gitternetzes, dessen Höhe der Auflösung und die Position der höchsten Auflösung in jedem Frame an die Kameraposition und Blickrichtung des Users angepasst wird (Bruneton, Neyret & Holzschuch, 2010). Dies ermöglicht auch die Interaktion einer Yacht mit dem Ozean während der gleichzeitigen Fahrt durch das Wasser.

Sinuswellen Zur Generierung von Wellenbewegungen eignen sich Sinuswellenfunktionen. Dabei werden Sinusfunktionen auf das Wassermesh angewendet. Mit den Parametern Wellenlänge, Amplitude und Wellenrichtung können die Eigenschaften der Wellen bestimmt werden. Die Überlagerung einer Anzahl dieser Sinuswellen ergibt die Wellenbewegung des Wassers. Da Sinuswellen allerdings eine eher runde Form haben, sind diese für die Darstellung von ruhigem Wellengang geeignet, nicht aber zur Simulation einer aufgewühlten, stürmischen See (Fréchot, 2006). Einzig auf Sinusfunktionen basierende Wellen würden dann unrealistisch wirken. Abbildung 2.1: Wassersimulation auf Basis von Sinuswellen1 Gerstner-Wellen Bei höherem Wellengang eignet sich die Berechnung von Gerstner-Wellen. In diesem Ansatz wird nicht nur die Höhe der Wasseroberfläche berechnet (vertikale Verschiebung), sondern es werden auch die Gitterpunkte dieser Oberfläche in horizontaler Richtung bewegt. Gerstner- Wellen bestehen aus einer Summe von Sinuswellen. Die Berechnung der Wellenhöhe erfolgt dabei unter der Verwendung einer Cosinus-Funktion (Tessendorf, 2001). Der mit zunehmender Amplitude spitzer zusammenlaufende Wellenberg ergibt den Effekt einer stürmischen Welle.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 2.2: Vergleich von runden Sinuswellen (oben) und den spitzer zulaufenden Gerstnerwellen (unten) in einer Wireframe-Ansicht1

Fast Fourier Transformation Durch Fourier-Transformationen lassen sich Abtastwerte in Frequenzen überführen. Bei der Wellenberechnung dienen Fourier-Transformationen dazu, um mit in der Realität gemessenen Werten, Wellen hochwertig zu approximieren. Dabei wird die Wellenhöhe in eine Anzahl von Frequenzen übertragen. Zur effizienten Berechnung der einzelnen Höhenwerte aus den Frequenzdaten bietet sich die schnelle Fourier-Transformation (FFT) an.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 2.3: Wassersimulation unter Verwendung eines FFT-Ansatzes zur Wellenberechnung1

Optische Approximation Die Qualität der dynamischen Wassersimulation wird nicht nur, wie eingangs beschrieben, durch die Wellenerzeugung, sondern ebenso durch spezielle optische Eigenschaften bedingt. Um Wasser realistisch abzubilden, ist es erforderlich die Interaktion von Licht und Wasser zu erfassen und in der Visualisierung zu verarbeiten (Johanson & Lejdfors, 2004). Auf eine Wasseroberfläche auftreffendes Licht wird zu bestimmten Teilen reflektiert und absorbiert (Tessendorf, 2001). Die visuellen Effekte dieser Interaktion, die Verhältnisse von reflektiertem und gebrochenem Licht, müssen für die hochwertige Darstellung angenähert werden. Das visuelle Erscheinungsbild des Wassers wird darüberhinaus maßgeblich von den verwendeten Shadern bestimmt. Der Fortschritt in der Computergrafik und der Anspruch der performanten Wasserdarstellung legt für interaktive Umgebungen die Verwendung eines Grafikshaders nahe.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 2.4: Wassersimulation mit Reflexion und Refraktion2

2.3 Yachtvisualisierung

Um ein virtuelles Yachtmodell interaktiv zu simulieren, müssen die physikalischen Aspekte dessen Verhaltens in der Interaktion mit den umgebenden Szenenelementen herausgearbeitet werden. Im Detail muss die Auswirkung bei der Fahrt durch das Wasser, ebenso wie das Schwanken und Kippen der Yacht beim Treiben auf dem Ozean simuliert werden. Zusätzlich nimmt die Umgebung Einfluss auf das Verhalten der virtuellen Yacht. So muss berücksichtigt werden, dass ein unruhiger Untergrund, hier der dynamische Ozean, spezielle Auswirkungen auf das Yacht-Modell hat und eine dementsprechende Reaktion hervorruft. Dabei soll die Yacht, physikalisch approximiert, auf den dynamischen Ozean reagieren. Das Treiben (Floating) der Yacht ist ein wichtiger Teil der Simulation im Wasser. Wellen beeinflussen das Verhalten der Yacht auf verschiedene Arten. Sie bringen das virtuelle Modell zum schwanken, kippen, neigen und auftreiben. Für die realitätsnahe Simulation ist es wichtig die Interaktion zwischen Flüssigkeiten und Festkörpern zu studieren, im Besonderen die Effekte, die hier das Wasser auf das schwimmende Objekt hat (Chen, 2013). Dieses evaluierte, physikalische Wissen aus der realen Welt muss in der Folge auf das virtuelle Modell übertragen werden. Durch scriptbasierte Berechnungen wird das Verhalten des virtuellen Modells in Abhängigkeit der Wellendaten berechnet und eine visuell passende Bewegung generiert.

2.4 Immersion

Zur Erreichung eines hohen Immersionsgrades sollen die Sinne des Nutzers auf multimodaler Ebene angesprochen werden. Dabei ist ausschlaggebend wie stark die physikalische Realität ausgeblendet werden kann. Das ”Eintauchen” in die computergenerierte Umgebung ist unter Anderem abhängig von

- der Bandbreite der angesprochenen Sinne
- dem eingesetzten Visualisierungssystem (Projektionswand/HMD/CAVE-Umgebung)
- der Qualität, Auflösung, Genauigkeit und dem Inhalt der VR

(Slater & Wilbur, 1997)

Daraus resultiert die Immersion als entscheidendes Qualitätsmerkmal von VR-Systemen (Sturm, 2009). Die Möglichkeit zur Interaktion mit Szeneninhalten ist in Bezug auf den späteren produkti- onstechnischen Einsatz der VR ausschlaggebend zur ergebnisreichen Evaluation und in der Folge wichtig zur Identifikation von Problemen und der Generierung von Problemlösungen(Mujber et al., 2004). Bezogen auf die Projektszene ist es erforderlich, dass der User sich ohne Einschränkung der Blickrichtung frei in der virtuellen Szene beziehungsweise auf der Yacht bewegen kann. Audiotech- nische Elemente (Motorensound) und grafische Effekte (Linsenlichtreflexion etc.) sollen der Szene mehr räumliche Tiefe verleihen, sie optisch aufwerten und damit intensiver erlebbar machen. Die Entwicklung sieht daher die voll-immersive Nutzung mit einem Head Mounted Display vor, um den User in die virtuelle Realität eintauchen zu lassen.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 2.5: Visualisierungssysteme unterschiedlicher Immersionsgrade und Komplexität (Sturm, 2009)1

2.5 Zusammenfassung

Um eine effiziente Simulation zu erzielen, konzentriert sich die implementierte Methode zur Simulation des Ozeans auf die wichtigste visuelle Erscheinung, die Oberflächenwellen. Dies ermöglicht eine verhältnismäßig detaillierte, ressourcenschonende Simulation in interaktiven Umgebungen. Die Darstel- lung der optischen Besonderheiten erfolgt unter Verwendung von Approximationen für Lichtreflexion und Lichtbrechung. Besondere Anforderung ist es letztendlich die aufeinander einflussnehmenden Elemente Wasser, Wetter und Yacht funktionsfähig miteinander zu verbinden und die Auswirkungen der aufeinander wirkenden Kräfte visuell erkennbar zu machen. Ziel ist es auf Basis eines im Rahmen dieser Bachelorthesis vertretbaren Entwicklungsaufwandes eine ressourcenschonende aber optisch hochwertige Simulation zu entwickeln. Demnach muss erwähnt werden, dass eine Reduktion von Berechnungen unumgänglich ist, um dieses Ziel auf gegenwärtiger Hardware zu realisieren.

3 Unity3D

Unity3D, ein Produkt von Unity Technologies 1, ist eine Game Engine zur Entwicklung von Compu- terspielen und interaktiven 3D-Anwendungen. Sie ermöglicht die schnelle Erstellung und Steuerung von Spielverlauf und visueller Darstellung und richtet sich sowohl an Anfänger als auch an Profis der 3D-Spieleentwicklung. Das Lizensierungsmodell von Unity Technologies erlaubt die Nutzung des Funktionsumfangs bereits in der kostenfreien Basisversion unter Windows und Mac OS X, während die kostenpflichtige Pro Version weitere Funktionen wie z.B. Deferred Rendering, Realtime Shadows oder 3D-Texturen unterstützt. Der Umstieg auf die Pro Version ist einfach und kann jederzeit durchgeführt werden. Zielplattformen sind neben Computern und Spielkonsolen (Play Station 3, Nintendo Wii, Xbox 360) auch mobile Engeräte mit iOS und Android, sowie Webbrowser mit dem Unity Web Player als Plugin. Fertig entwickelte Spiele können problemlos auf verschiedene Plattformen angepasst werden. Die Game Engine bietet neben einer leistungsstarken Rendering Engine ein großes, kontinuierlich erweiterbares Set an Assets, den Bestandteilen einer Spielszene, und funktioniert so als eine intuitive Entwicklungsumgebung mit der zusätzlichen Möglichkeit auch eigenen Content, wie Komponenten und Scripte zu erstellen und zu verwenden. Unterstützt durch den Unity Asset Store, der ein großes Angebot an vorgefertigten Ressourcen wie 3D-Objekten, Texturen, Animationen, Gestaltungswerkzeugen, Scripten und vielen anderen Erweiterungen zum kostenfreien oder kostenpflichtigen Download und anschliessenden Import in das eigene Unity Projekt, bereithält, können im Unity Editor schnell Szenen und Levels kreiert werden, die direkt im Game View, dem Spielmodus, getestet werden können. Mittels selbst entwickelter Scripte lassen sich auch importierte Assets individuell anpassen und verändern. Über die im Programm enthaltene Demo Spielszene hinaus, bietet Unity3D eine Plattform mit Video Tutorials2 und einem Nutzerhandbuch (Manual)3 mit ausführlichen Erklärungen zum Lernen und Weiterentwickeln an. Die große Unity Community4, ein Netzwerk von Entwicklern und Nutzern, die sich gegenseitig inspirieren, mit Ideen und Hinweisen über das Unity Forum versorgen, hält ebenso nutzbare Inhalte und Lösungshilfen bereit. Als Game Engine ist Unity3D nicht auf die Entwicklung von Spielen beschränkt, sondern bietet sich als leistungsstarke Freeware für die Entwicklungen jeder Art von 3D-Echtzeitanwendungen an. Im Rahmen dieser Arbeit wird die Game Engine Unity3D zur Entwicklung der immersiven Visualisierung einer virtuellen Yacht in einer interaktiven 3D-Umgebung verwendet.

3.1 Interface

Die Benutzeroberfläche (engl. Interface) der Entwicklungsumgebung Unity3D, der Unity Editor, ist in verschiedene Fenster und Ansichten unterteilt, deren Anordnung individuell angepasst werden kann. Assets, die in ein Unity Projekt importiert und dort verwendet werden, werden automatisch in einem Projektordner gespeichert, der im Dateisystem des eigenen Computers zu finden ist. Innerhalb des Programms sind diese Assets über den Project Browser, dem Projektfenster, erreichbar. Wird in der linken Leiste ein Asset aus der hierarchischen Ordnerstruktur durch Klicken ausgewählt, wird im angrenzenden Fenster der Typus (Material, Script) und weitere Inhalte (Unterordner) angezeigt und kann ausgewählt werden. Ein Suchfenster ermöglicht die spezifische und schnelle Suche. Die Hierarchie-Ansicht (engl. Hierarchy) enthält jedes Objekt (GameObject) der aktuellen Szene. Werden Objekte gelöscht, verschwinden sie auch aus der Hierarchy. Per Drag & Drop können Objekte in die Hierarchy bewegt oder auf ein anderes Objekt gezogen werden, um das Parenting- Konzept anzuwenden. Hierdurch werden Objekte zu Childs, dem jeweiligen Objekt untergeordnet, und folgen somit der Bewegung des Parent ohne zusätzlich ausgewählt oder verändert werden zu müssen. In der Szenenansicht (engl. Scene View), welche die entwickelte Spielszene zeigt, entsteht das Spiel. Mithilfe der Maus und Kurzbefehlen können Objekte und die Kamera innerhalb der Szene bewegt und manipuliert werden. Der Scene Gizmo in der rechten Fensterecke zeigt die aktuelle Kameraorientierung. Das Auswählen der verschiedenen Achsen erzeugt die jeweilige Ansicht. Die Toolbar am oberen Rand der Hauptansicht besteht aus fünf Hauptbefehlsfeldern. Mit den Transform Tools werden Objekte in der Scene View transliert, rotiert und skaliert. Die Gizmo Toggles sowie das Layers und Layout Drop Down-Menü beeinflussen die Szenenausrichtung und mit den Play/Pause/Stop Buttons kann das Spiel gestartet, pausiert und gestoppt werden. Durch Starten des Spiels wird automatisch in die Game View gewechselt. Dieses Fenster repräsentiert die entwickelte Spielszene. Diese ist aus GameObjects verschiedener Art zusammen gesetzt. Durch Komponenten wie Texturen, triangulierte Netze (Meshes), Scripte, Audioelemente, Animationen oder weitere, z.B. grafische Elemente werden diesen ihre Eigenschaften zugeordnet. Das Inspector Fenster zeigt detailliert alle Informationen und Einstellungen des ausgewählten GameObjects und dessen Komponenten, deren Werte hier direkt editiert werden können. Weitere Basisfenster der Benutzeroberfläche sind die Console, die Fehler und Warnungen, die das Programm daran hindern die GameScene zu starten, ausgibt sowie das Animationsfenster, welches zur Erstellung der Objektanimation aufgerufen werden kann.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 3.1: Unity3D Interface1

3.2 Szenenaufbau

Um ein Spiel zu entwickeln, wird zuerst ein neues Projekt File > New Project erstellt und gespeichert. In dieses Projekt können die Unity Standard Assets geladen und anschliessend ausgewählt werden. Danach wird eine neue Szene File > New Scene erstellt, die dann im Projekt unter einem gewählten Namen abgespeichert wird. Eine Szene in Unity kann als ein Level betrachtet werden, die Menge aller Szenen ergibt dann das Spiel. Eine Szene kann aber auch nur ein Startbildschirm sein oder eine Zwischensequenz. Szenen (Scenes) in Unity enthalten alle Objekte des Game Levels. Durch einfaches Drag & Drop können Assets aus dem Projektordner in die Szene gezogen oder über den Scene Editor erstellt werden. Nachfolgend werden die Hauptelemente, die zum Aufbau einer Szene zur Verfügung stehen, erläutert.

3.3 GameObject

GameObjects sind die wichtigsten Objekte in Unity3D. Jedes Objekt, das einer Game Scene hinzugefügt wird (GameObject > Create Empty), ist ein GameObject . Die anfangs leeren Boxen erhalten durch das Hinzufügen von Komponenten ihr Aussehen und Verhalten. In Form von Scripten können eigene Komponenten editiert und definiert werden. In dieser Erweiterbarkeit zeigt sich das offene Konzept der Game Engine. Unity3D stellt aber auch bereits vorgefertigte GameObjects zur Verfügung, die ebenso erweiterbar sind. Ein Beispiel hierfür ist das GameObject Camera, welchem bereits ein Verhalten bzw. bestimmte Funktionen zugeordnet sind. Die Camera kann auf diese Weise einfach im Spiel eingesetzt oder jedem beliebigen GameObject angehängt werden und bei Bedarf nach den jeweiligen Anforderungen angepasst oder verändert werden. Jedes GameObject enthält bereits eine Transform Komponente, welche die Nutzung aller weiteren Komponenten erst ermöglicht, da es die Position, Ausrichtung und Größe in der Szene bestimmt.

3.4 Component

Es kann zwischen Meshkomponenten, Renderkomponenten, physikalischen Komponenten, Audiokom- ponenten und Scripten unterschieden werden. Das Dreieck hat sich als elementares Flächenstück in der 3D-Computergrafik durchgesetzt. Mehrere Dreiecke können zu einem Polygonnetz zusammengesetzt werden. Durch Triangulation kann jedes beliebige planare Polygon in Dreiecke zerteilt werden. Da sich benachbarte Dreiecke in einem zusammenhängenden Netz immer zwei Eckpunkte teilen, lässt sich Speicherplatz sparen, indem eine Liste von Dreiecken mit jeweils drei Eckpunkten abgespeichert wird. Soll die als Polygonnetz dargestellte Geometrie animiert werden, genügt es die Eckpunkte zu animieren, da alle geometrischen Figuren durch diese Eck- oder Kontrollpunkte fest beschrieben sind. Auf diese Punkte können alle eingangs besprochenen Transformationen angewendet werden. Werden beispielsweise die Eckpunkte eines Polygons um einen bestimmten Betrag verschoben, so verschiebt sich das gesamte Polygon in der Darstellung um diesen Betrag. Neben den Positionen der Punkte können aber auch andere Darstellungsparameter animiert werden, wie beispielsweise die Linien- oder Füllfarbe eines grafischen Objekts.

Meshkomponente Ein Mesh Filter bildet das jeweilige Asset als Netz ab. Der Mesh Renderer übernimmt die Geometrie und rendert diese an der im Inspector angegebenen Position. Der Mesh Renderer kann verschiedenste Materialen und Texturen verwenden, um die Form eines Meshes abzubilden. Sie sind in der Materialliste des Projektordners zu finden und können dort ausgewählt werden. Neben dem Skinned Mesh Renderer, der automatisch importierten Meshes hinzugefügt wird, gibt es ebenso das Text Mesh, welches eine 3D-Geometrie generiert, die Textlinien abbildet. Renderkomponente Zu den Renderkomponenten zählen Assets, die notwendig sind, um die Szene darzustellen. Kameras beispielsweise sind essentielle Bestandteile der Szene. Als Component eines GameObjects zeigen eine oder mehrere Kameras dem Spieler/User während des Spiels was dieser sehen soll. Hilfreiche Kamera-Scripte können mit dem Scripts Package kostenlos importiert werden und weisen der Kamera bestimmtes Verhalten zu, zum Beispiel das Folgen eines GameObjects (Cam Follow). Die Main Camera enthält von Beginn an eine Kamera-Komponente, die Main Camera, einen GUI Layer, einen Flare Layer sowie einen Audio Listener. Layers werden überwiegend von Kameras verwendet, um nur bestimmte Teile der Szene abzubilden oder auch von Lichtquellen, um die Beleuchtung zu regeln. Ein Flare Layer zeigt die Linsenreflexionen der Szene, während ein GUI Layer alle GUIs (engl. Graphic User Interface) der Szene rendert. Im Inspector können außerdem bestimmte Werte, wie zum Beispiel die Near und Far Clipping Plane eingestellt werden. Diese Werte bestimmten ab wo und wie weit die Szene gerendert wird.

Eine Skybox zeigt die Umgebung der Szene, die Weite des Horizontes, die die komplette Szene umgibt. Die Skybox wird aus sechs verschiedenen Texturen gerendert und kann entweder in den Render Settings eingestellt werden, um von allen Kameras der Szene abgebildet zu werden oder einer individuellen Kamera direkt angehängt werden, um nur von dieser gesehen zu werden. Skyboxes können selbst kreiert oder vorgefertigt aus den Standard Assets verwendet werden.

In fast jeder Szene ist eine Beleuchtung notwendig, um der 3D-Umgebung Licht, Farbe und Stim- mung zu verleihen. Es kann zwischen Directional Light, Point Light, Spot Light und Area Light gewählt werden. Üblicherweise werden mehrere Lichtquellen in einer Szene eingesetzt. Im Inspector kann jedes Licht den eigenen Szenenanforderungen angepasst werden. Zur Darstellung der Benutzeroberfläche des Spiels kann zwischen GUI Text und GUI Texture (2D Bilder) gewählt oder ein eigenes GUI mit einem Script erstellt werden. UnityGUI, ein GUI Scripting Guide, erlaubt die schnelle und einfache Erstellung eines großen Angebotes an hoch funktionellen GUIs.

Physikalische Komponente Neben Komponenten, die das Aussehen eines GameObjects beein- flussen, gibt es auch welche, die sich auf das physikalische Verhalten auswirken. Soll ein GameObject den physikalischen Gesetzen der Schwerkraft unterliegen und mit anderen Objekten in der Szene kollidieren können, muss diesem ein Rigidbody (Component > Physics > Rigidbody) hinzu- gefügt werden. Rigidbodies sind physikalisch simulierte Objekte, welchen durch Scripte zusätzliche Kräfte zugeordnet werden können. Das ist zum Beispiel erforderlich bei einem Objekt, das die Spielfigur, der Player, bewegen soll oder auch damit sich Fahrzeuge bewegen können. Eine Alternative zur Rigidbody-Komponente, die oft für die Spielfigur genutzt wird, ist der Character Controller. Über Script gesteuert, schreibt dieser der Spielfigur bestimmte Bewegungen oder Verhalten vor, die physikalisch unrealistisch sind und somit durch Rigidbodies weniger gut simuliert werden. Collider werden benötigt, um ein GameObject als Festkörper zu definieren. Static Colliders werden mit Geometrie in der Szene verbunden, die sich nicht bewegt, sondern immer am gleichen Platz bleibt. Sich bewegende Objekte sollten als Rigidbodies definiert werden. Diese werden dann durch Kräfte, Gravität oder Kollision beeinflusst. Wird in den Import Settings das Feld Generate Colliders aktiviert, erhält das GameObject schon beim Import die Collider Eigenschaften.

Audiokomponente Einer Szene können neben grafischen Elementen auch Audiodateien hin- zugefügt werden. Die wichtigsten Audio Komponenten sind Audio Listener und Audio Source. Der Audio Listener funktioniert wie ein Mikrophon. Er empfängt Töne und Geräusche von Audioquellen in der Szene, denen sich die Main Camera bzw. der First Person Controller (Player) nähert. Üblicherweise wird der Audio Listener der Main Camera angehängt. Pro Szene kann es nur einen Audio Listener geben. Zusätzlich können auch Audio Clips als Audioquellen einem GameObject zugeordnet werden. Der Sound eines 3D-Clips wird beim Passieren einer festgelegten Position ausgegeben und mit der Entfernung verstummen. Unity3D kann verschiedene Audioformate importieren.

Script Komponente GameObjects können nicht nur über die Einstellungen im Inspector, sondern auch über Scripte manipuliert werden. Darüberhinaus kann ein Script auf die Aktion des Spielers antworten oder bestimmte Werte des GameObjects in Abhängigkeit der Zeit verändern. Scripte beeinflussen außerdem die Kommunikation verschiedener Objekte in der Szene untereinander. Sind bestimmte Funktionen nicht durch Komponenten in Unity3D bereits vorhanden, können diese individuell durch die Generierung eines Scriptes erstellt und gesteuert werden.

Ebenso können Animationen einem GameObject als Komponenten angehängt werden. Im Ani- mation Editor werden Animationsclips direkt in Unity3D erstellt und bearbeitet. Außerdem erlauben Animation Events das Aufrufen eines Scriptes zu einem festgelegten Zeitpunkt in der Animation. Zur Positionierung der GameObjects stehen die eingangs beschriebenen Transform Tools zur Ver- fügung. Um GameObjects mit ihren Komponenten wiederholt und auch in verschiedenen Szenen verwenden zu können, kann ein Prefab (Assets > Create > Prefab), welches im Projektordner gespeichert wird, erstellt werden. Veränderungen an einem Prefab wirken sich auf alle Klone dieses Prefabs aus. Auch multiple Komponenten und die Hierarchy von Child GameObjects werden im Prefab gespeichert.

3.5 Scripting

Scripte sind essentielle Bestandteile einer Programmstruktur. Über sie wird der Programmablauf gesteuert. Scripte werden auch in Unity3D benötigt, um auf den User Input zu antworten und die Szeneninhalte zum Leben zu erwecken. Sie finden Verwendung, um die Interaktion von Objekten in der Spielszene zu steuern und graphische Effekte zu erzeugen. Das Verhalten eines GameObjects wird über dessen Komponenten gesteuert. Über Assets > Create > New Script oder Assets > Create > C# Script kann ein neues Script erstellt und anschliessend einem GameObject zugeordnet werden. Ist ein GameObject bereits erstellt und im Inspector ausgewählt, kann über Add Component > New Script / (Name) Script - diesem Objekt direkt ein neues oder bereits bestehendes Script zugewiesen werden. Erst als Komponente eines GameObjects werden Scripte aktiv und können das Verhalten des jeweiligen GameObjects manipulieren. Darüber hinaus können über Name oder Tag auch andere Objekte durch ein Script angesprochen und kontrolliert werden. Unity3D unterstützt die Programmiersprachen C Sharp (C#), JavaScript (in Unity auch UnityScript) und Boo, die fehlerfrei aufeinander zugreifen können (Unity3D, o.J.). Der Unity3D Programmcode liefert eine Reihe von Klassen, die als Sammlung von Anweisungen und Verhaltensstrukturen verstanden werden können. Abgeleitet wird jedes Script von der MonoBehaviour-Klasse. Innerhalb von Funktionen werden Befehle für das Verhalten von GameObjects gesetzt. Variablen dienen im Script zur Speicherung von Informationen. Diese werden außerhalb von Funktionen deklariert und mit Werten gefüllt. Über die Variable können diese jederzeit im Verlauf des Script Codes abgerufen werden (Goldstone, 2009). Befehle, die nicht automatisch zum Start der GameScene ausgeführt werden sollen, müssen innerhalb einer Funktion platziert werden. Zur Aktivierung einer Funktion, wird diese im späteren Codeverlauf aufgerufen (Menard, 2011). GameScenes werden von Unity3D in einer bestimmten Anzahl von Frames Per Second gerendert. Code in der Awake ( ) -Funktion wird abgerufen, wenn das Script initialisiert wird. Der Inhalt der Start ( ) -Funktion wird ein Mal beim Laden des jeweiligen GameObjects aufgerufen. Script Code innerhalb der Update ( ) -Funktion wird vor jedem Frame erneut aufgerufen und ausgeführt. Hier werden zum Beispiel Bewegungen, das Triggern (Aktivieren) von Aktionen und

Antworten auf User Input, im Grunde jede Aktion, die während des Spielmodus aufgerufen werden muss, ausgeführt. Die Scripte in dieser Bachelorthesis werden in der Programmiersprache C# verfasst.

Grundlegende Anatomie einer C# Scriptdatei:

Abbildung in dieser Leseprobe nicht enthalten

3.6 Tools

Unity3D liefert eine Reihe nützlicher Tools zum Erstellen dreidimensionaler Szenen. Nachfolgend werden die grundlegensten Tools vorgestellt.

3.6.1 Terrain Engine

Ein Level in Unity3D wird auf Grundlage einer Fläche (Plane) erstellt. Das Terrain, die Levelumge- bung, bildet die Umwelt, beispielsweise eine Landschaft. Die Game Engine liefert neben vielen Assets ein besonderes Tool zur Terraingestaltung, die Terrain Engine. Im Inspector werden alle verfügbaren Funktionen zur Erstellung und Gestaltung angezeigt. Nach dem Erstellen einer Grundfläche, kann diese in Höhe, Form und Texturierung verändert werden. Im Editor können Bäume, Pflanzen und weitere Landschaftsdetails wie Steine, Felsen und Gras ausgewählt, bearbeitet und mit wenigen Klicks großflächig platziert werden. Mit verschiedenen Pinselformen und -größen kann die Terrainfläche individuell bearbeitet werden. Über die Terrain Toolbar, den sieben Einstellungsmenüs Raise and Lower Height, Paint Target Height, Smooth Height, Paint Texture, Place Trees, Paint Details und Terrain Settings der Komponente Terrain (Script) kann ein Terrain bearbeitet werden. In den Untermenüs der ersten drei Tools wird die allgemeine Form des Terrains angepasst.

Mit Hilfe der verschiedenen Pinselformen, -größen und -stärken kann die Terrainfläche individuell bearbeitet werden. Auf diese Weise entstehen beispielsweise Hügel, Felsenküsten und Gebirge. Über das Tool Paint Texture werden den erstellten Formen Farben und Texturen zugeordnet. Die durch Unity3D mitgelieferten Standard Assets enthalten bereits eine Auswahl an Texturen. Zusätzlich können eigene Texturen erstellt und in das Projekt geladen werden. Die Terrain Engine bietet über das Untermenü Place Trees die Möglichkeit Bäume auszuwählen, zu bearbeiten und zu einzusetzen. Auch hier ist es möglich eigene Bäume zu entwerfen und daraufhin zahlreich in der Szene zu verwenden. Über Paint Details werden weitere Landschaftsdetails editiert. Unter Terrain Settings werden Detaileinstellungen in den Bereichen Base Terrain, Tree & Detail Objects und Wind Settings vorgenommen.

3.6.2 Particle System

Ein weiteres sehr vielseitiges Tool in Unity3D ist das Particle System zum Kreieren von Wolken, Rauch, Feuer, Regen, Dampf und weiteren atmosphärischen Effekten. Die erzeugten Werte der Partikel werden im Editor als MinMax-Kurven angezeigt und sind individuell modifizierbar. Eine Weiterentwicklung dieses Particle Editors ist das Shuriken Particle Emitter System, das seit der Unity3D Version 3.5 verfügbar ist. Dieses System arbeitet mit einem vordefinierten Set an Modulen, die aktiviert und deaktiviert werden können, um das Verhalten der Partikel über einen bestimmten Zeitraum zu beeinflussen. Zusätzlich sind etliche Einstellungen zur Steuerung und dem Aussehen der Partikel im Inspector vorzunehmen. Individuelle Partikelsysteme können außerdem zu einer Particle Effects Group zusammengefasst und gleichzeitig abgespielt werden.

3.6.3 ShaderLab

Shading bezeichnet allgemein die Berechnung der Oberflächenfarben anhand der zugehörigen Materi- aleigenschaften und dem direkt eintreffenden Licht. Das Shading kommt sowohl beim Echtzeitrendern als auch beim realistischen Rendern zum Einsatz. Die indirekte Beleuchtung von anderen Oberflächen bleibt dabei zunächst unberücksichtigt. Unity3D enthält über 80 Shader zur Gestaltung der Mesh- Oberflächen. Diese Anzahl kann durch eigene Shader erweitert werden. Es gibt drei zu unterscheidende Arten von Shadern: Surface Shader, die von Licht und Schatten beeinflusst werden, Vertex Shader, die Berechnungen auf den 3D-Punkten einer Szene durchführen, Fragment Shader, die auf jeden Pixel des Bildes angewendet werden und den Farbwert des Pixels zurückliefern und Fixed Function Shader, für ältere Hardware, die programmierbare Shader nicht unterstützt. Die Definition der Shader- Struktur wird unabhängig vom Shader-Typ und der entsprechenden Shader-Programmiersprache in der Sprache ShaderLab angelegt.

3.6.4 Animation Tool

Sollen GameObjects in Unity3D animiert werden, kann dies mit einem Animationsprogramm außerhalb des Programms und anschließend importiert oder direkt mittels bereitgestellten Tools innerhalb von Unity3D verwirklicht werden. Im Animation Window werden durch das Setzen von Keyframes und Bearbeiten der Animationskurven animierte Clips erstellt. Eine sehr brauchbare Funktion stellt das Tool Animation State Machine dar. Dieses Tool ermöglicht einen Überblick über alle Animationsclips eines GameObjects und erlaubt es das Abspielen von Animationen zu organisieren. Dazu werden die erstellten Animationen in States, Transitions und Events eingeteilt und definieren was zum jeweiligen Zeitpunkt abgespielt wird.

[...]


1 Massachusetts Institute of Technology; http://web.mit.edu

1 http://www.w2vr.com/timeline/16_Ultimate.jpg; Zugriff: 22.04.2014

2 Datenbrille der Firma Google; http://www.google.com/glass/start/

3 Head Mounted Display der Firma Oculus VR; http://www.oculusvr.com

1 http://www.kurzweilai.net/images/google_glass.jpg; Zugriff: 22.04.14

2 http://blogs-images.forbes.com/erikkain/files/2014/03/OculusRift1.jpg; Zugriff: 22.04.14

3 http://www.icido.de/en/Company/pressreleases/pressereleases.php?we_objectID=26

1 http://www.christiedigital.com/img/In-Page%20Images/Corporate/News%20Room/2010%20Releases/Christie% 20Fosters%20Collaboration%20and%20Innovation%20at%20Communitech%20Hub/Communitech-Hub- Advanced-Visualization-3D-Cave-Image-1.jpg; Zugriff: 21.04.14 http://www.visbox.com/imgs/CAVE.jpg; Zugriff: 21.04.14

1 https://www.rtejournal.de/ausgabe4/1160; Zugriff: 22.04.14

1 http://yachtingworld.media.ipcdigital.co.uk/9097/000007a73/a848/VOR-build-two.jpg; Zugriff: 22.04.14

2 http://www.3dit.de/media/thumbs/product-configurators/yacht.png; Zugriff: 22.04.14

1 http://www.sixtimesnothing.com

2 http://www.itwissen.info/definition/lexikon/application-programming-interface-API- Programmierschnittstelle.html; Zugriff: 22.04.14

3 http://www.gruenderszene.de/it/web-apis-ein-nicht-technischer-erklarungsversuch; Zugriff: 22.04.14

1 http://jayconrod.com/images/water1.png; Zugriff: 22.04.14

1 http://www.uni-koblenz.de/ cg/Studienarbeiten/Studienarbeit_TimoWallrath.pdf

1 http://www.edxgraphics.com/realistic-ocean-scene.html; Zugriff: 22.04.14

2 Tessendorf, J. (2001). Simulating ocean water. Simulating Nature: Realistic and Interactive Techniques. SIGGRAPH, 1.

1 Grafikeditierung: Katrin Gruber

1 http://unity3d.com/company

2 https://unity3d.com/learn/tutorials/modules

3 http://docs.unity3d.com/Documentation/Manual/index.html

4 http://unity3d.com/community

1 http://1.bp.blogspot.com/_F4evdV92Cwo/Su6-apYGLpI/AAAAAAAAATo/gvfzsJeYC_8/s1600- h/Learning+the+Interface-0.jpg; Zugriff: 22.04.14; Bildbeschriftung: Katrin Gruber

Final del extracto de 126 páginas

Detalles

Título
Interaktive Visualisierung von virtuellen Booten und Yachten
Subtítulo
Entwicklung einer immersiven, dynamischen Realität unter Verwendung der Game Engine Unity3D
Universidad
University of Würzburg  (Institut für Mensch-Computer Medien)
Curso
Medieninformatik
Calificación
1,3
Autor
Año
2014
Páginas
126
No. de catálogo
V282718
ISBN (Ebook)
9783656817468
ISBN (Libro)
9783656817475
Tamaño de fichero
3825 KB
Idioma
Alemán
Notas
DVD nicht im Lieferumfang enthalten!
Palabras clave
Unity 3D, Virtual Reality, Game Engine, Virtuelle Realität, Immersive Reality, Head Mounted Display, Immersive Media, Mensch Computer Interaktion, Interactivity, Interaktivität
Citar trabajo
Katrin A. M. Gruber (Autor), 2014, Interaktive Visualisierung von virtuellen Booten und Yachten, Múnich, GRIN Verlag, https://www.grin.com/document/282718

Comentarios

  • No hay comentarios todavía.
Leer eBook
Título: Interaktive Visualisierung von virtuellen Booten und Yachten



Cargar textos

Sus trabajos académicos / tesis:

- Publicación como eBook y libro impreso
- Honorarios altos para las ventas
- Totalmente gratuito y con ISBN
- Le llevará solo 5 minutos
- Cada trabajo encuentra lectores

Así es como funciona