Entwicklung eines 3D-Widget Editors
Diplomarbeit von Rolf Zelder
Aufgabenstellung
Im Rahmen der Diplomarbeit wird ein Editor konzipiert und prototyphaft realisiert, der dem Benutzer die interaktive Erstellung eines selbst definierten Widgets ermöglicht und die Anbindung von Interaktionstechniken an beliebigen Teilobjekten des selbstdefinierten Widgets ebenfalls interaktiv erlaubt. Zusätzlich wird ein Format vorgestellt in dem dieses selbstdefinierte Widgets und deren Interaktionstechniken für weitere Verwendungen abgespeichert wird. Dadurch soll der Konstruktionprozeß bei der 3D-Widget Erstellung vollständig interaktiv und innerhalb einer Werkzeugumgebung erfolgen.
Theoretischer Hintergrund
In den letzten Jahren haben sich Anwendungen, die 3D-Daten manipulieren rasant verbreitet z.B. in dem CAD Bereich, Wissenschaftliche Visualisierung etc. Diese Anwendungen benutzen meistens die traditionelle 2D-Widgets, die für die Interaktion mit 2D Benutzungsschgnittstellen entwickelt worden sind. Mit diesen herkömmlichen Widgets kann mit 3D Umgebungen, nur über den indirekten Weg, interagiert werden d.h. bei der Benutzung ist stets ein Kontextwechsel von 3D zu 2D und wieder zurück notwendig. Durch die schnelle Entwicklung in der Computerbranche ermöglichen die Computer heute die Entwicklung und effektive Benutzung von 3D Widgets. Eine einheitliche Definition von 3D Widgets in der Literatur geben Conner et al. [1992]. Ein 3D-Widget ist demnach eine Kombination einer 3D-Geometrie mit dem dazugehörige Verhalten zur Steuerung oder Anzeige von Informationen.
Es gibt mehrere Anwendungsfelder,bei denen die Interaktion mittels 3D Widgets sinnvoll ist.
- Anwendungen, die 3D Objekte erstellen oder konfigurieren wie CAD Systeme oder Architektur etc.
- Interaktionen, die die Darstellung verändern wie z.B. Zoomen, Navigation in 3D/VR-Umgebungen etc
Die Interaktion des Benutzers mit einer vom Computer erzeugetn 3D-Anwendung werden als 3D-Interaktion bezeichnet. Foley et al identifizierte vier wesentliche Interaktionen:
- Positionierung: Diese Basisinteraktion übergibt eine 2D- oder 3D-Position an die Applikation und wird durch die Bewegung eines Cursors auf dem Bildschirm oder Eingabe der Positionskoordinaten erreicht.
- Auswahlinteraktionen: Aus einer gegebenen Grundmenge von Elementen werden ein oder mehrere Elemente selektier. Die Selektion kann durch Zeigen erfolgen oder durch andere Angaben.
- Quantitative Interaktion: Diese Interaktion spezifiziert einen numerischen Wert innerhalb eines gegebenen Intervalls und kann durch Eingabe des Wertes oder Manipulation eines Schiebereglers o. ä. erfolgen.
- Textinteraktion: Textinteraktionen meint die Eingabe textueller Informationen, die keine spezielle semantische Bedeutung in der Applikation besitzt.
Die Konstruktion entsprechender 3D-Widgets ist nicht trivial. Neben dem Problem einer effizienten Modellierung der geometrischen Objekte ( z.B. exakte Positionierung ) muß die mögliche Interaktion mit dem Objekt modelliert werden sowie ein Funktionsrahmen für die entsprechende Reaktion bereitgestellt werden. Während für die geometrischen Modellierung Werkzeuge git ( die jedoch meistens für CAD Bereich entwickelt wurden ), werden die anderen Aufgaben bisher nur durch Programmierung gelöst.
Realisierung
Zur Realisierung dieses Editors wurde C++ und Open Inventor benutzt. Die Software läuft unter Irix 6.2 und 6.3. Es wurde darauf Wert gelegt, daß der Benutzer jede wichtige Auswahl interaktiv vornehmen kann. Außerdem kann er durch ein bestehendes Socketsystem sich mit anderen Editoren verbinden und diverse Daten austauschen.
OpenIventor ist eine Entwicklung der Silicon Graphics Inc. .Es ist eine objectoriente Bibliothek von Objekten und Methoden zur Erstellung interaktiver 3D-Grafikanwendungen mit der Anbindung an die Programmiersprache C und C++. OpenInventor setzt auf OpenGL auf.Eine statische Szenenbeschreibung erfolgt durch die Bildung einer baumartigen Struktur von Objekten, die auch Szenengraph genannt wird. In einer Datenbasis werden hierfür Szenenobjekte bereitgestellt, mit denen sich z.B. Geometrie, Material etc beschreiben lassen. Fü die Art der Darstellung einer Szene werden eine Reihe von Szenenobjekten angeboten. Geometrische Primitive (Kugel, Quader etc), Freiformflächen oder explizite über ihre Eckpunkte definierte Oberflächen werden als geometrische Objekte unterstützt. Darüber hinaus ist für OpenInventor-Applikation ein Dateiformat definiert worden, in dem Szenengraphen als ASCII-Text abgespeichert und eingelesen werden können.
Mit dem Editor entworfene 3D-Widgets sollen als Szenengraphenerweiterung ebenfalls in diesem Format beschreibbar sein und sich in beliebigen OpenIventor - Anwendungen einsehen lassen.