Interaktive Darstellung einer Explosionszeichnung

Transcription

Interaktive Darstellung einer Explosionszeichnung
Interaktive Darstellung einer Explosionszeichnung
anhand des studentischen Forschungsprojekts SOMP
Sebastian Erler, Constanze Klaus, Robert Krahn
Technische Universität Dresden, Fakultät Informatik
Institut für Software- und Multimediatechnik, Lehrstuhl für Mediengestaltung
Zusammenfassung: In dieser Arbeit wird auf die dreidimensionale
Umsetzung einer Explosionsgrafik bezüglich eines studentischen
Forschungsprojektes eingegangen. Die Projektarbeit resultiert in einer
interaktiven Anwendung, welche dem Benutzer es ermöglicht sich
einen einfachen aber genauen Überblick über das dargestellte Objekt
zu verschaffen.
1
Motivation
Abstrakte Modelle und technische Konstrukte sind für viele Menschen schwer
erfassbar und kompliziert zu erklären. Besonders im Bereich der Forschung gibt es
Projekte, deren wissenschaftliche und theoretische Konzeptionierung ausgeprägter
ist als die visuelle Gestaltung und somit für Außenstehende meist sehr praxisfern
wirken.
Illustrationen, Skizzen, Explosionsgrafiken, technische Zeichnungen oder andere
zweidimensionale Darstellungen können das Verständnis unterstützen, sind jedoch
in ihrer Präsentationsvielfalt meist unflexibel und eingeschränkt. Beispielsweise
zeigt eine Fotografie nur eine Ansicht auf ein Objekt und für Ansichten aus anderen
Perspektiven müssen neue Aufnahmen gemacht werden.
Dreidimensionale Modelle haben dagegen den Vorteil, dass ein Objekt jederzeit aus
einem anderen Blickwinkel betrachtet werden kann. Das räumliche
Vorstellungsvermögen des Betrachters wird durch diese Art der Darstellung
unterstützt und das Verständnis des komplexen Gegenstandes erleichtert.
Virtuelle 3D Modelle können zudem durch ihre Interaktivität und Manipulierbarkeit
die Anschaulichkeit von Funktionsweisen des Objekts fördern und motivieren den
Benutzer zum Selbststudium und experimentellen Lernen.
Ziel dieser Arbeit ist es ein interaktives virtuelles 3D Modell eines technischen
Forschungsgegenstands zu realisieren, welches in seiner Darstellungsform sowohl
für Laien als auch für Sachkundige geeignet ist. Zur detaillierten Betrachtung soll es
dem Nutzer möglich sein, sich frei um das Objekt zu bewegen und gleichzeitig eine
Explosionszeichnung als Animation zu steuern
2
Einführung
Virtuelle 3D Modelle finden in vielen Bereichen Anwendung. In der Medizin gibt es
beispielsweise interaktive Modelle einzelner Organe wie dem Herz [1], die sich
interaktiv erkunden lassen. Auch Produkte wie eine Computermaus [2] können als
Echtzeitmodell von allen Seiten betrachtet werden. Der äußere Aufbau dieser
Objekte und deren Struktur werden so anschaulich und intuitiv für den Benutzer
dargestellt.
Leider bleiben die innere Struktur und die Zusammenhänge von Objektteilen dem
Betrachter verborgen. Abhängigkeiten zwischen den Baugruppen oder die
Anordnungen einzelner Elemente sind meist nicht sichtbar, da es bei den
dargestellten Objekten zu Überlappungen und Verdeckungen kommt.
Eine Verbesserung dieser 3D Modelle besteht darin, auch den inneren Aufbau dem
Benutzer zugänglich zu machen. In der 2D Grafik wird dies meist durch eine
Explosionszeichnung des Objektes realisiert (angedeutet in Abbildung 1). Diese
Grafiken sind spezielle technische Zeichnungen. Während normale technische
Zeichnungen ein Objekt meist in der Draufsicht, Vorder- und Seitenansicht
abbilden, wird das Objekt bei einer Explosionszeichnung in seine einzelnen
Bauteile zerlegt und perspektivisch dargestellt. Zusammenhänge zwischen den
Elementen und Anordnungen von Baugruppen werden dadurch visualisiert.
Die Verbindung eines virtuellen 3D Modells und einer Explosionszeichnung in eine
interaktive Anwendung erlaubt es nun dem Nutzer ein Objekt in seiner Zerlegung
von allen Seiten betrachten zu können und somit auch den Aufbau innerhalb des
Objektes zu begreifen. Eine Erweiterung dieses Ansatzes mündet in der
interaktiven Steuerung der Explosionsgrafik, sodass das Objekt in differenzierten
Zerlegungsgraden dargestellt wird.
Die Konzipierung und prototypische Umsetzung der beschriebenen Erweiterung
virtueller 3D Modelle soll Gegenstand dieser Arbeit sein und anhand eines
Forschungsprojekts realisiert werden.
3
Projektgegenstand und Kooperationspartner
An Universitäten und Hochschulen gibt es viele Projekte, bei denen die eingangs
geschilderte Problematik des Herantragen von Forschungsthemen an ein breiteres
Publikum relevant ist. Das von uns ausgewählte Forschungsprojekt soll nun im
Folgenden genauer vorgestellt werden.
3.1
Kooperationspartner STARD
Kooperationspartner dieser Arbeit ist die Studentischen Arbeitsgruppe für
Raumfahrt in Dresden (STARD) am Institut für Luft- und Raumfahrttechnik der
Technischen Universität. Eines der laufenden fakultätsübergreifenden Projekte ist
der Bau eines Miniatursatellitens, welcher in der Erdumlaufbahn Daten erheben
soll.
3.2
CubeSat-Projekt SOMP
Seit 2006 arbeitet STARD am Bau eines Satelliten, dem Student's Oxygen
Measurement Project (SOMP), welcher im Rahmen des internationalen CubeSatProjekts stattfindet.
Das CubeSat-Projekt wurde von mehreren amerikanischen Universitäten initiiert um
Hochschulen, Forschungseinrichtungen und privaten Unternehmen einen
kostengünstigen Weg für Forschungen und Projekte im Weltall zu bieten. Die
entwickelten Miniatursatelliten, wegen ihres geringen Gewichts auch Picosatelliten
genannt, müssen dabei gewisse Spezifikationen erfüllen.
Die wichtigsten Standards eines CubeSats sind seine Ausmaße von 10 x 10 x 10
cm und das Gewicht von 1 kg. Mithilfe einer speziellen Startvorrichtung können
diese Satelliten als Sekundärnutzlast bei einem Raketenstart eines größere
Satelliten mitgeführt werden.
3.3
Missionsziele
Die Daten, welche durch das SOMP erfasst werden, dienen zwei Experimenten.
Zum einen wird der atomare Sauerstoff im Orbit der Erde gemessen. Dieser ist sehr
aggressiv und greift die Schutzschicht von Satelliten und Raumstationen an. Die
Messung erfolgt durch FIPEX-Sensoren, die ebenfalls an der TU Dresden am
Institut für Luft- und Raumfahrttechnik entwickelt wurden. Zum anderen werden
Dünnschichtsolarzellen
(DSSZ)
der
Firma
SOLARION
GmbH
unter
extraterrestrischen Bedingungen getestet. Die neuartigen flexiblen Solarzellen
kamen bisher nur auf der Erde zum Einsatz und sollen nun auf
Weltraumqualifizierung geprüft werden.
3.4
Aufbau des CubeSat SOMP
In Abbildung 1 ist eine exemplarische Explosionszeichnung des CubeSats zu
sehen. Der Satellit besteht im Wesentlichen aus einer Rahmenstruktur, deren sechs
Außenwände mit Solarzellen und Antennen versehen sind. Eine der Außenwände
ist die Nutzlastseite, welche zwei FIPEX-Sensoren in einer Einheit und vier
Dünnschichtsolarzellen in zwei Modulen trägt. Im Inneren der Struktur befindet sich
eine Anordnung von Leiterplatten, welche für die Subsysteme des Satelliten
verantwortlich sind. Die Kommunikation mit dem Satelliten findet über ein digitales
Funksystem im Amateurfunkbereich statt.
Abb. 1: Aufbau des CubeSats SOMP
[Web08]
4
Entwicklungsumgebung
Zur Realisierung der prototypischen 3D Anwendung wurde neben unterstützenden
Werkzeugen hauptsächlich die 3D Entwicklungsumgebung Blender genutzt.
Blender besticht durch eine Vielzahl an Möglichkeiten und Werkzeugen zur
Erstellung von dreidimensionalen Körpern und Szenen. Außerdem bietet es dem
Entwickler die Möglichkeit eigene Materialien, komplexe Animationen und diverse
graphische Effekte direkt im Programm zu erstellen. Neben der Modellierung von
Objekten und der Entwicklung von Animationen, beinhaltet Blender eine Funktion
zur Erstellung interaktiver Anwendungen. Diese Funktion, GameEngine genannt,
ermöglicht es anschauliche aus dem Bereich der Computerspiele bekannte,
dreidimensionale Umgebungen zu erschaffen, in welchen der Nutzer mit der
Anwendung interagieren kann. Die Entwicklung im Rahmen der GameEngine
erlaubt es unter anderem komplexe logische Zusammenhänge zwischen Objekten
zu erstellen und in der Programmiersprache Python geschriebene Skripte direkt in
die interaktive Anwendung einzubinden. Zum Beispiel könnte ein Interaktion
zwischen Nutzer und Anwendung mittels der Maus basierend auf der Nutzung eines
solchen Python Skripts realisiert werden.
Während eine dreidimensionale Animation nur beim einmaligen kodieren in einen
Film intensiv die Ressourcen des Rechners nutzt und sich beim späteren Abspielen
eher anspruchslos zeigt, wirkt sich die Komplexität der in der GameEngine
entwickelten Szene direkt auf die interaktive Anwendung aus. Bei der Entwicklung
der Anwendung musste entsprechend auf ein gutes Verhältnis zwischen grafischer
Attraktivität und performanter Ausführung geachtet werden.
Zusätzliche Vorteile von Blender sind eine Vielzahl bereits bestehender – mit
Blender entwickelten – Projekte, und die Veröffentlichung der Software unter der
„GNU General Puplic License“.
5
Arbeitsschritte der Anwendungsentwicklung
Die Entwicklung der Anwendung lässt sich in folgende Teilschritte unterteilen,
welche anschließend auszugsweise näher beschrieben werden sollen:
1. Einbindung und Anpassung der bereits gegebenen Rohdaten
2. Konzeption einer Szene für die Anwendung
3. Umsetzung der dreidimensionalen Explosionsanimation
4. Entwicklung eines User-Interfaces (Steuerung, Menü, etc.)
5. Detailarbeiten und ästhetische Effekte
Ausgangsbasis für die Anwendung bildet ein CAD1-Modell des Satelliten. Wie
bereits in Kapitel 4 erwähnt, bildete die Optimierung des Detailgrades in Bezug auf
die Performance der Anwendung einen wichtigen Teilschritt. CAD-Modelle sind
allgemein sehr wirklichkeitsgetreu und eignen sich nicht ohne weiteres zur
Darstellung in einer Echtzeitanwendung. Blender bietet jedoch eine Import-Funktion
für CAD-Modelle an, wodurch ein Informationsverlust durch eventuelles
eigenständiges Modellieren verhindert wird. Somit können CAD-Modelle sehr gut
als Ausgangsobjekt genutzt werden. Grundsteinlegend für den weiteren Verlauf des
Projekts wurde das CAD-Modell nach dem Einfügen in das Projekt stark
1Computer
Aided Design
vereinfacht. Dabei wurden nicht sichtbare Details sowie unnötige geometrische
Strukturen entfernt.
Parallel zur geometrischen Vereinfachung des Satelliten-Modells und der
Entwicklung von Texturen bzw. Materialien für den Satellit, wurden erste Konzepte
der globalen Szene erarbeitet. Die genauen Inhalte und die Probleme bei der
Konstruktion der Szene werden in gesonderten Abschnitten erläutert.
Der dritte Arbeitsschritt, die Umsetzung der Explosion, erfolgte nach den Vorgaben
des Lehrstuhls für Luft- und Raumfahrttechnik. Das User-Interface und die
Interaktion wurde versucht leicht verständlich und dezent zu realisieren.
6
6.1
Aufbau und innere Struktur der Anwendung
Das User Interfaces
Es wurde versucht das User Interface übersichtlich, intuitiv und dezent zu gestalten.
Abbildung 2 zeit das Startmenü, welches den Nutzer nach der Startanimation
empfängt. Der Nutzer hat hier die Möglichkeit die eigentliche Anwendung zu
starten, sich kurze über das SOMP Projekt zu informieren oder eine Übersicht der
am Projekt beteiligten Personen anzeigen zu lassen. Des Weiteren kann das
Programm beendet werden.
Abbildung 3 zeigt alle Menüs im Hauptteil der Anwendung, welche durch Klicken
auf das jeweilige Symbol in der unteren linken Ecke des Bildschirms geöffnet und
geschlossen werden können. In der Reihenfolgen von links nach rechts sind dort
die Menüs „Options“, „Sound“, „Controls“ und „Exit“ hinterlegt. Über das
Optionsmenü können einzelne Baugruppen des Satelliten ein- und ausgeblendet
und der Grad der Explosionszeichnung geregelt werden. Neben der
Anwendungssteuerung durch die Maus sind zusätzlich alle grundlegenden
Funktionen über die Tastatur nutzbar.
Abb. 2: Startmenü
Abb. 3: Anwendungsmenü
6.2
Konzeption der Anwendung
Abb. 4: Szenenaufbau
Blender bietet die Möglichkeit Inhalte innerhalb einer Anwendung in verschiedene
Szenen zu gliedern und bei der Ausführung durch diese unterschiedlchen Szenen
zu wechseln. In der Konzeptionsphase entstand eine Aufteilung in 5 Szenen welche
in Abbildung 4 dargestellt ist. Nach Starten der Anwendung wird dem Anwender
zunächst ein Schriftzug und ein Ladebildschirm präsentiert. Dies ist die initiale
Szene, „Fade-In“. Sie dient dazu, dem Nutzer nicht sofort zu viele Eindrücke zu
vermitteln und bietet schnelles Feedback nach dem Starten ohne lange Wartezeit.
Ist der Ladevorgang abgeschlossen wird automatisch in die Szene „Startup“
übergegangen und eine kurze Animation abgespielt, die schließlich in das
Hauptmenü mündet. An dieser Stelle kommen die in Abbildung 4 gepunktet
dargestellten Szenen zum Einsatz. Diese Szenen überlagern optisch jeweils die
aktive Szene und beinhalten das User Interface. Dies hat den Vorteil, dass zu
keinem Zeitpunkt Elemente des User-Interface von anderen Objekten
durchdrungen werden können. Ausgehend vom Hauptmenü kann der Nutzer nun in
die Szene „Interactive“ wechseln. Sie stellt nicht nur die Hauptfunktion der
Anwendung bereit, sondern beinhaltet auch die wichtigsten Objekte wie den
Satelliten oder die Umgebung.
6.3
Aufbau und Entwicklung der interaktiven Szene
Die interaktive Szene stellt den Kernteil der Anwendung dar. Die Interaktion mit dem
CubeSat findet in einer Nachbildung des Welltall statt, um dem Benutzer ein
gewisses Raumgefühl zu vermitteln und gleichzeitig die Umlaufbahn des Satelliten
zu simulieren.
Die Bestandteile der Szene können in Gruppen gegliedert werden. Die erste
Gruppe von Objekten stellt die Umgebung dar. Sie beinhaltet die Erde, deren
Atmosphäre, das Weltall und ein Bild der Sonne (siehe Abbildung 5). Die
Atmosphäre ist rosa markiert und das Weltall wurde zur besseren Übersicht als
Gitter dargestellt.
Abb. 5: Bestandteile der Umgebung
Die Atmosphäre wurde abstrahiert und als Scheibe konstruiert, welche erst aus
Sicht der Kamera wirkt als würde sie die Erde komplett umschließen. Wie auch das
Bild der Sonne richten sich diese beiden Objekte während der Nutzung der
Anwendung permanent nach der Position der Kamera im Raum aus, um die
Simulation der Umgebung beständig zu halten.
Besonders viele Objekte und damit auch rechenintensive Geometrie sind in der
Gruppe des Satelliten vereinigt. Dieser besteht unter anderem aus den
Seitenwänden samt Solarzellen, den Antennen, dem Rahmen und den Platinen im
Inneren (siehe Abbildung 1). Wobei jedes dieser Elemente wiederum mehrere
Objekte enthält. So sind die FIPEX-Sensoren zur Messung des atomaren
Sauerstoffs zum Beispiel auf einer Seitenwand befestigt und bestehen selbst aus
mehreren Einzelteilen (siehe Abbildung 6).
Abb. 6: Drahtgittermodell des CubeSat
Die letzte Gruppe besteht aus Hilfsobjekten welche in der späteren Anwendung
nicht sichtbar sind. Darin sind die Kamera, Lichtquellen und sogenannte EmptyObjekte enthalten. Diese Empty-Objekte dienen lediglich der Strukturierung von
Objekten, wie im Folgenden noch dargelegt wird. Darüber hinaus können sie auch
dazu verwendet werden, Programmlogik zu tragen ohne selbst jemals in der
Anwendung sichtbar zu sein.
Abbildung 10 zeigt das Drahtgittermodell der interaktiven Szene. Das grobmaschige
äußere Modellnetz stellt die Abstraktion des Weltalls als Sternenhintergrund dar
und die Modellkugel im Innern die Erde. Weiterhin sind mehrere Objekte zu sehen,
die nur dünne Koordinatenachsen zeigen. Dies sind die angesprochenen EmptyObjekte. Das größte dieser Objekte, welches seinen Ursprung in der Mitte der Erde
hat, ist das „World-Empty“ und dient dazu die 90 minütige Rotation des Satelliten
um die Erde zu realisieren. Bei Betrachtung dieser Objekte bietet sich die
Erläuterung der Objekthierarchien an. In Blender, wie auch in anderen 3DEntwicklungsumgebungen, existiert das Konzept das „parenting“. Durch diese
Operation wird ein Objekt zum Eltern-Objekt eines anderen, im Folgenden KindObjekt genannt, erhoben. Diese Bindung hat die Orientierung des Kind-Objektes
am Koordinatenraum des Eltern-Objektes zur Folge. Der Satellit wurde auf diese
Weise am „World-Empty“ orientiert. Neben dem Satelliten besitzt das „World-
Emtpy“ zwei weitere Kinder, ebenfalls Empty-Objekte, welche zur Bewegung und
Positionierung der Kamera genutzt werden.
Dreht sich nun das „World-Empty“ um eine Achse, so tun dies auch der Satellit und
die Kamera. Wobei es durch diese Hierarchie zusätzlich möglich wird die Kamera
um den Satelliten herum zu rotieren. An dieser Stelle sei erwähnt, dass weder die
24h-Rotation der Erde um ihre eigene Achse, noch deren jährliche Rotation um die
Sonne nachgestellt wurden.
Die Abbildungen 7 bis 9 zeigen die Beziehungen der „Empty“ Objekte zu einander
am Beispiel der Rotation des „World-Empty“. Das rosa eingefärbte „World-Empty“
wird an dessen Y-Achse um die Kugel rotiert, dabei verändert sich die Position der
gekoppelten, kleineren Kind-Objekte. In Abbildung 9 ist zu erkennen, dass KindObjekte zwar ihre Position entsprechend den Eltern verändern, sich aber dennoch
frei rotieren lassen. Diese Eigenschaft wird zur freien Bewegung der Kamera um
den Satelliten genutzt.
Abb. 7: Veranschaulichung der Rotation – Schritt 1
Abb. 8: Veranschaulichung der Rotation – Schritt 2
Abb. 9: Veranschaulichung der Rotation – Schritt 3
In der Mitte von Abbildung 10 lassen sich die zwei Empty-Objekte erkennen, welche
für die Rotation der Kamera um den Satelliten verantwortlich sind. Ein Objekt
realisiert die vertikale-, das andere die horizontale Rotation der Kamera.
In Hinblick auf die Nutzerfreundlichkeit der Steuerung wurde schnell klar, dass die
Rotation der Kamera in der Vertikalen eingeschränkt werden muss. Das Ziel ist ein
eingeschränkter vertikaler Rotationsspielraum auf 180°. So kann die Kamera
maximal bis senkrecht von oben bzw. unten schauend auf den Satelliten bewegt
werden. Dadurch wird eine Überkopfstellung der Kamera und somit die Invertierung
der horizontalen Rotation um den Satelliten vermieden um dem Nutzer eine
einfachere Orientierung im Raum zu ermöglichen. Es ist dennoch möglich aus
jedem beliebigen Winkel den Satelliten zu betrachten.
Ein weiterer interessanter Aspekt der Szene bezieht sich auf den Umgang mit
Sternenhintergrund und Sonne. Der Sternenhintergrund ist in Abbildung 10 als
Gittermodel dargestellt.
Abb. 10: Drahtgittermodell der interaktiven Szene
Um möglichst wenig Geometrie somit Rechenleistung für den Hintergrund
verwenden zu müssen wurde das Weltall in eine kugelähnliche Form mit lediglich
30 Flächen abstrahiert. Auf diesen Flächen ist ein sich wiederholendes Muster von
Sternen auf schwarzem Grund aufgebracht. Die Illusion wirkt allerdings nur,
solange der Betrachter sich in der Mitte dieser Kugel befindet. Da die Kamera, wie
bereits angesprochen, um die Erde rotiert ändert sich damit auch die Position des
Betrachters in der Szene (Abbildung 10). Um die Gleichabständigkeit des
Betrachters zu den Flächen des Sternenhintergrunds zu wahren muss der
Hintergrund mit der Kamera mit bewegt werden. Würde man dies nicht tun, käme
der Betrachter bei einer bestimmten Kamerabewegung näher an den „Rand des
Universums“ und würde so die Sterne größer wahrnehmen als aus dem Zentrum in
der Szene. In Analogie zu den Eltern-Kind Beziehungen des „World-Emty“, liegt die
Lösung des Problems darin, den Sternenhintergrund durch „parenting“ an die
Kamera zu binden. Gleichzeitig musste aber dafür gesorgt werden, dass sich die
Sterne nicht mit der Kamera um die Erde drehen.
Eine weitere Abstraktion betrifft die Sonne. Die Ausführungsgeschwindigkeit einer
dreidimensionalen Szene wird wesentlich durch den Komplexitätsgrad der
enthaltenen Objekte bestimmt. Ein viel verwendeter Ansatz liegt darin, Objekte nicht
als dreidimensionales Objekt in die Szene zu integrieren. Statt dessen wird lediglich
eine Bild dieses Objektes (eine Textur) auf eine Fläche aufgetragen. Dies führt zu
wesentlich weniger geometrischen Strukturen in der laufenden Anwendung bei
akzeptabler Darstellungsqualität. War bei der Erde dieses Verfahren durch deren
Umkreisung nicht möglich, kann die Sonne jedoch abstrahiert werden. In der
Anwendung wird es nie dazu kommen, dass der Betrachter sich hinter die Sonne
bewegen kann. Gleichzeitig muss nur dafür gesorgt werden, dass diese Fläche
immer senkrecht zur Blickrichtung steht.
7
Probleme bei der Erstellung
Während des Entwicklungsprozesses traten mehrere Probleme im Bereich der
Darstellung und Konzipierung auf, die im Folgenden näher beleuchtet werden
sollen.
7.1
Realitätsnahe Darstellung der Umgebung
Das erste Problem bestand darin, dass der 10 cm große Satellit und die im
Durchmesser ca. 12.750 km große Erde im Größenverhältnis von rund 1:120
Millionen zueinander stehen und dieses in Blender aufgrund von begrenzter
Rechenleistung nicht darstellbar ist. Die Erde wurde deshalb wesentlich kleiner
gehalten, ebenso der Abstand des CubeSat zur Erde.
Dadurch entstand ein weiteres Problem. Der Skalierungseffekt für den Satelliten
hatte auch Einfluss auf die Größenwahrnehmung der Erde. Die Kamera wurde bei
einem Herauszoomen aus der Szene weiter weg von den Objekten bewegt. Durch
den verhältnismäßig kleinen Abstand von Kamera und Erde wurde das Sichtfeld auf
die Erdoberfläche größer, obwohl es sich in der Realität aufgrund der
Größenverhältnisse nicht merklich verändern würde.
Das Problem wurde durch eine Hilfskonstruktion gelöst, indem sich beim Zoomen
nunmehr nicht die Kamera bewegt, sondern der CubeSat skaliert wird. Das
Sichtfeld auf die Erde bleibt somit gleich und der Benutzer bekommt durch das
Vergrößern und Verkleinern des Satelliten den Eindruck eines Skalierungseffekt.
7.2
Vertikale Rotation der Kamera um den Satelliten
Der CubeSat soll durch den Benutzer interaktiv erforscht werden und von allen
Seiten betrachtet werden können, weshalb die Kamera frei im Raum steuerbar ist.
Bei einer vertikalen Bewegung kommt es jedoch ab einem bestimmten Punkt zu
Problemen bei der Steuerung. Sobald die Kamera über den Satelliten hinüber
schwenkt, spiegelt sich die Steuerung. Ebenfalls bei einem Schwenk unterhalb des
Satelliten. Eine Mausbewegung nach rechts führt nun nicht mehr zu einer
Kamerarotation gegen den Uhrzeigersinn, sondern mit dem Uhrzeigersinn.
Die Kamera besitzt zwei Rotationszentren an welchen jeweils x-, y-, z-Achsen
liegen, die im Mittelpunkt des Satellitenmodells zusammen führen – eines für die
horizontale Bewegung Rh und eines für die vertikale Bewegung Rv. Bei einer
horizontalen Kameraveränderung bleibt die z-Achse zh des Rotationszentrums Rh
fest. Bei einer vertikalen Veränderung bleibt die y-Achse yv von Rv fest.
Angenommen es wird eine Mausbewegung nach oben ausgeführt, so wird nur um
die Rotationsachse yv gedreht und die Achsen von Rh bleiben unverändert. Nun
wird die Bewegung der Maus beispielsweise an der Stelle gestoppt, bei der sich die
z-Achse zv um 180° gedreht hat. Die Kamera steht somit global gesehen kopfüber
und zv zeigt in die entgegengesetzte Richtung wie zh. Bewegt man nun die Maus
nach rechts, d.h es wird nur um die Rotationsachse zh gedreht und die Achsen von
Rv bleiben unverändert, wird von Rh aus betrachtet immer noch eine Rotation
gegen den Uhrzeigersinn ausgeführt. Von Rv aus gesehen wird jedoch die Kamera
mit dem Uhrzeigersinn gedreht und der Benutzer nimmt eine gespiegelte Steuerung
wahr.
Um das Problem zu lösen könnte man die Steuerung in diesen Fällen intern
invertieren, damit der Benutzer wie gewohnt die Maus bewegen kann. Wir haben
uns jedoch gegen diese Variante entschieden, da es unter Umständen zu einem
„lost in space“ Gefühl des Benutzers kommen kann und er die Orientierung in der
Ansicht verliert. Wir haben uns stattdessen für eine Einschränkung der Navigation
entschieden. Die Kamera kann nun bei einer vertikalen Bewegung nur noch
zwischen -90° und 90° rotieren, gemessen vom Ursprungszustand der Achsen, und
das Kopfstehen der Kamera wird somit verhindert.
7.3
Interaktiv wechselndes Kamerazentrum
Um die Interaktivität der Anwendung zu erhöhen, war es vorgesehn einzelne
Elemente des CubeSat selektieren und genauer betrachen zu können. Die Kamera
müsste sich dafür auf die ausgewählten Bauteile neu ausrichten und die
Rotationszentren auf den Mittelpunkt des Objekts verschoben werden. Aufgrund
unseres Systemaufbaus war uns dies nicht möglich zu realisieren. Versuche
zeigten, dass die Verschiebung des Satelliten aus dem Bildmittelpunkt zu
Objektverzerrungen und -durchdringungen führt.
8
Fazit und Ausblicke
Häufig verschlingt die Entwicklung eines Prototypen viel Zeit. Oft wird dabei viel Zeit
für bisher unbekannte Problemstellungen oder die Auseinandersetzung mit neuen
Entwicklungsprozessen verwendet. Auch im Fall dieser Projektarbeit kann man
rückblickend ähnliche Feststellungen treffen. Im Verlauf des Projekts wurden
wertvolle Erfahrungen gesammelt und wichtige Fähigkeiten erlernt. Künftige
Arbeiten im Rahmen der Blender-Umgebung könnten somit schneller und
organisierter bearbeitet werden. Der gesamte Ablauf ließe sich besser planen und
gegebenenfalls in einzelne detailliertere Phasen unterteilen. Abschließend kann
man den Verlauf des Projekts als sehr lehrreich, jedoch auch als zeitintensiv
beschreiben.
Neben vielen Detailarbeiten an Texturen und kleinen Effekten bietet der
entstandene Prototyp einige Möglichkeiten für Erweiterungen. Einerseits wäre ein
Plugin für Blender denkbar, welches es ermöglichen würde dreidimensionale
Explosionsanimationen relativ einfacher und schneller zu erzeugen. Dieses Plugin
würde die Erfahrungen des Projekts nutzen und für zukünftige, ähnlich geartete
Arbeiten zur Verfügung stellen. Blender bietet für die eigene Entwicklung und
Einbindung von Plugins bereits gute Grundlagen.
Mittels Skripten können Entwickler umfassend auf die Funktionen der
Entwicklungsumgebung zugreifen und Prozesse automatisieren und vereinfachen.
Die umfassende Dokumentation und der öffentlich zugängliche Quellcode des
Programms (Blender) wirken sich dabei unterstützend auf die Entwicklung und die
resultierenden Fähigkeiten eines Plugins aus.
Die Grundidee für ein „Explosions-Plugin“ beinhaltete folgenden Ansatz: Es könnte
dem Blender-Nutzer ermöglicht werden für einzelne Objekte Bewegungsachsen zu
definieren auf welchen sich die Objekte während einer Explosion bewegen würden.
Zusätzlich wäre es gegebenenfalls möglich zeitliche Abhängigkeiten im Verlauf
einer Explosion zu konfigurieren. Resultierend aus diesen Einstellungen wäre das
Plugin in der Lage automatisch eine Animation zu erzeugen. In wie weit komplexere
Bewegungen, zum Beispiel eine Rotation um eine Achse bei gleichzeitiger
Bewegung auf der gleichen Achse, zum Beispiel für Schrauben, möglich wären,
hätte im Verlauf der Entwicklung des Plugins untersucht werden müssen. Unter
Berücksichtigung der gesammelten Erfahrungen scheint ein solches Plugin
durchaus realisierbar zu sein.
Eine weitere Erweiterung des Projekts stellt eine Anbindung der „WiiMote“ zur
Steuerung der Kamera in der Anwendung dar. Die freie Bewegung der „WiiMote“ im
Raum würde eine intuitive Steuerung innerhalb der dreidimensionalen Szene
erlauben und es gegebenenfalls dem Benutzer erlauben sich einfacher bzw.
spielerischer mit der Anwendung auseinander zu setzen. Im Internet2 wurden
bereits auf der Steuerung mit der „WiiMote“ basierende Projekte veröffentlicht, eine
Umsetzung scheint somit durchaus möglich.
2http://www.selectparks.net/modules.php?name=News&file=article&sid=628
Literatur
[Web08]
Weber, A.: CubeSat in Dresden - Die Studenteninitiative SOMP
(Vortragsfolien), Internationale Luft- und Raumfahrtausstellung, Berlin, Mai 2008
Verzeichnis von Webadressen
[1]
Uniklinikum Saarland, 3D Modelle in der Anatomie, http://www.uniklinikumsaarland.de/med_fak/anatomie/bock/java/frameher.htm, Abruf: 01.09.2009
[2]
EDV für konstruierende Berufe, Visualisierung / Animation, http://www.choppen.de/inhalt_visualisierung_animation.htm, Abruf: 01.09.2009