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

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Es können in Java3D Teilgraphen wiederverwendet werden, was die Implementierung etwas<br />

erleichtert. Ein Weg ist, dass sich verschiedene Szenegraphen einen gemeinsamen Unterbaum teilen,<br />

oder ein großer Teil der Knotenstruktur wird geklont, und nur Texturen und Geometrien werden gemeinsam<br />

genutzt, wobei Veränderungen an allen gemeinsam benutzten Bestandteilen entsprechend<br />

alle beteiligten Szenegraphen beeinflussen. Da keine zwei Referenzen auf einen Knoten verweisen<br />

können, wird die Wiederverwendung ganzer Teilbäume mit speziellen Linkknoten ermöglicht. Der in<br />

der folgende Darstellung gezeigte Szenegraph ist eine einfache Variante einer Szenegraphstruktur,<br />

wie sie Java3D vorkommt.<br />

Abbildung 11 Beispiel eines Szenegraph von Java3D<br />

Die Objekte (Knoten) lassen sich in Java3D in drei Gruppen einteilen. Die erste Gruppe bilden Knoten,<br />

die dem Szenegraphen übergeordnet sind, in einer zweiten sind alle Knoten enthalten, die für<br />

Darstellung, Positionierung und Interaktion verwendet werden. Eine dritte umfasst die Elemente, die<br />

den Betrachter der virtuellen Welt beschreiben. Die wichtigsten Knoten werden in der folgenden<br />

Aufzählung kurz erklärt.<br />

VirtualUniverse: Dieser Knoten stellt die Wurzel eines Szenegraphen in Java3D dar, welche der<br />

Strukturierung der einzelnen Teilgraphen dient. Kinder des VirtualUniverse-Knotens müssen immer<br />

Locale-Knoten sein. Es ist möglich, in einer Anwendung mehr als ein virtuelles Universum zu<br />

definieren, sie sind jedoch völlig unabhängig voneinander, d.h. es ist keine Interaktion zwischen<br />

beiden möglich.<br />

Locale: Mit diesem Objekt können Teilgraphen innerhalb eines virtuellen Universums zugeordnet<br />

werden. Ein „Locale“ kann ein Universum mit sehr großen räumlichen Ausdehnungen erschaffen. Ihm<br />

werden alle anderen Objekte zugeordnet. Ihre Position wird nur mit Gleitkommazahlen relativ zu dem<br />

zugehörigem „Locale“ angeben.<br />

SceneGraphObject: Dies ist die Basisklasse für die eigentlichen Szenegraphkomponenten, während<br />

„Locale“ und „VirtualUniverse“ keine Subklassen dieses Typs sind. Szenegraphobjekte werden zu<br />

einem Graphen zusammengesetzt und mittels eines Locale-Knoten in ein virtuelles Universum<br />

eingebunden. Die Basisklassen werden von den Klassen „Node“ und „NodeComponet“ erweitert.<br />

Node: Node dient als Basisklasse für alle Java3D-Knoten. Diese werden in Blattknoten und Gruppenknoten<br />

unterteilt. Gruppenknoten können je nach Typ ihre Kinder auf spezielle Art und Weise gruppieren.<br />

Blattknoten können keine Kindknoten besitzen. Sie repräsentieren die Objekte, die Java3D<br />

wirklich darstellt, welche neben geometrischen Objekten auch Licht oder Ton sein können.<br />

14

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!