Proseminar Computergrafik: Retained Mode: Open Inventor, VRML ...
Proseminar Computergrafik: Retained Mode: Open Inventor, VRML ...
Proseminar Computergrafik: Retained Mode: Open Inventor, VRML ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
NodeComponent: Knotenkomponenten können nicht wie normale Knoten eine Vater-Kind-Beziehung<br />
eingehen, sondern dienen der genaueren Definition der Knoten, von denen sie referenziert werden.<br />
Während Knoten nur ein Elternteil besitzen können, kann eine Knotenkomponente von mehreren<br />
Knoten angesprochen werden.<br />
3.2 View-Teilbaum<br />
Eine Neuerung, die mit Java3D umgesetzt wurde, findet man im View-<strong>Mode</strong>ll. Mit dem neuen <strong>Mode</strong>ll<br />
kann die Szene des selben Szenegraphen entsprechend dem Ausgabegerät gerendert werden. Selbst<br />
wenn sich die Ausgabegräte physikalisch stark unterscheiden, ist die richtige Darstellung möglich.<br />
Diese Vielseitigkeit wird erreicht über die Trennung von virtueller und physikalischer Welt. Java3D<br />
definiert einen Zusammenhang zwischen diesen beiden Welten, der bestimmt, wie der User Objekte in<br />
der virtuellen Welt manipulieren kann, und wie Aktivitäten der virtuellen Objekte die Darstellung der<br />
Szene für den User verändern. Der Benutzer existiert dabei in beiden Welten. Er hat eine Position und<br />
eine Orientierung in der virtuellen Welt. Ebenso haben er und seine Ausgabengeräte eine Position<br />
und Orientierung in der realen Welt.<br />
Der Szenegraph repräsentiert dieses <strong>Mode</strong>ll in einem speziellen Teilbaum. Der ViewPlatform-Knoten<br />
ist ein Bestandteil dieses Teilgraphen. In ihm sind Position, Orientierung und Skalierung des Betrachters<br />
in einer 3D-Szene festgehalten.<br />
3.3 Ereignisse und Interaktion<br />
Die zentrale Klasse für die Realisierung von Interaktion, Animation und Kollisionserkennung ist die<br />
Behavior-Klasse. Die Behavior-Knoten werden „wach“, sobald ein bestimmtes Ereignis eintritt. Diese<br />
verändern dann mit einer speziellen Methode den Szenegraphen oder ermitteln z.B. selektierte<br />
Objekte. Ereignisse, die durch den Benutzer ausgelöst wurden, der Ablauf einer gewissen Zeitspanne<br />
und andere Kriterien dienen als Aufwachkriterien.<br />
Die Behavior-Klasse unterstützt des weiteren die Auswahl von Objekten. Dies geschieht über die Definition<br />
eines eigenen Behavior-Objekts, das sich für den Empfang von einfachen Fenster-Events registriert.<br />
Mit Hilfe der Methode processStimulus() kann dann das ausgewählte Objekt ermittelt werden. Da<br />
es auch möglich ist, den Pfad des Objekts vom Locale bis zu seiner Position zu bestimmen, kann<br />
nach dem Auswählen auch seine Position und Orientierung in der virtuellen Welt verändert werden. Es<br />
existieren auch drei vorgefertigte „Picking“-Klassen, die dem Entwickler die Arbeit mit der Auswahl von<br />
Objekten sehr vereinfachen.<br />
4 <strong>Retained</strong> <strong>Mode</strong>: Vergleich <strong>Open</strong> <strong>Inventor</strong>, <strong>VRML</strong>, Java3D<br />
Das Rendering ist ein optische Auswertung eines dreidimensionalen <strong>Mode</strong>lls. Es gibt verschiedene<br />
Renderingmodi mit entsprechend unterschiedlichen <strong>Mode</strong>llen als Grundlage. Der Immediate <strong>Mode</strong><br />
zum sofortigen Zeichnen wird von <strong>Open</strong> GL angeboten. Der <strong>Retained</strong> <strong>Mode</strong> setzt die Szenegraphstruktur<br />
voraus, in dem aber alle Objekte modifiziert werden können. Wesentlicher Unterschied der<br />
beiden Modi liegt in der Übersicht über die 3D-Szene. Dabei ist der Überblick des Programmierers genauso<br />
von Bedeutung wie der des Systems. Dies äußert sich in der Flexibilität bei der Darstellung und<br />
Manipulation der 3D-Szene und in der Ausführungsgeschwindigkeit. Das System ist in der Lage, die<br />
Teile des Szenegraphen, die sich nicht ändern, beizubehalten und die Neuberechnung auf die<br />
veränderten Teilbäume zu beschränken.<br />
15