Proseminar Computergrafik: Retained Mode: Open Inventor, VRML ...
Proseminar Computergrafik: Retained Mode: Open Inventor, VRML ...
Proseminar Computergrafik: Retained Mode: Open Inventor, VRML ...
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