05.08.2013 Aufrufe

Proseminar Computergrafik: Retained Mode: Open Inventor, VRML ...

Proseminar Computergrafik: Retained Mode: Open Inventor, VRML ...

Proseminar Computergrafik: Retained Mode: Open Inventor, VRML ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!