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.

Eine spezielle Form der Gruppenknoten ist der Separator. Beim Eintritt in den Separator-Teilbaum<br />

wird der aktuelle Zustand gespeichert und nach Verlassen wiederhergestellt. Dabei wird verhindert,<br />

dass Veränderungen von Attributen im Teilbaum sich auf den Rest des Szenegraphen übertragen. Im<br />

Falle des Wurzelknotens wird nach dem Rendering der 3D-Szene der Ausgangszustand wieder<br />

eingesetzt.<br />

Wie das obige Beispiel zeigt, können Knoten mehrfach verwendet werden. Bei der Verknüpfung<br />

zweier Knoten muss beachtet werden das kein Zyklus entsteht, so dass ein Knoten keine Referenz<br />

besitzt, die über seine Kindknoten auf ihn zurück verweist. Richtig angewendet kann diese Technik<br />

jedoch Rechzeit und Hauptspeicher sparen helfen.<br />

1.3 <strong>Inventor</strong> Objekte<br />

<strong>Open</strong> <strong>Inventor</strong> als Klassenbibliothek für objektorientierte Sprachen kann mittels Vererbung erweitert<br />

werden. Diese Erweiterung von bestehenden Knoten durch Ableiten ermöglichen dem Programmierer<br />

hohe Flexibilität und die gewohnte Übersichtlichkeit objektorientierter Programmiersprachen. <strong>Open</strong><br />

<strong>Inventor</strong> stellt verschiedene Grundtypen von Objekten zur Verfügung. Die Basistypen werden durch<br />

ein „Sb“ gekennzeichnet und umfassen neben Farbe oder einfachen geometrische Strukturen<br />

(Zylinder, Ebenen, Vektoren, ...)viele andere 3D-Grundstrukturen. Eine weitere Gruppe stellen die<br />

Szene-Objekte dar, in der alle Knoten, Felder, Pfade, Aktionen und Events enthalten sind. Die<br />

Elemente dieser Gruppe sind durch ein „So“ (SceneObjekt) gekennzeichnet.<br />

Aus diesen Objekttypen kann der Programmierer entsprechend seiner Vorstellung ein 3D-Objekt<br />

erstellen und es nach Belieben wiederverwenden.<br />

1.4 Event<br />

Der <strong>Inventor</strong> bietet eine Reihe von Möglichkeiten zur Selektion und Manipulation von Objekten. In<br />

einer bestehenden Szene können etwa durch anklicken einfache Transformationen an einem Objekt<br />

durchgeführt werden. Mit einem solchen Event wird eine erneute Traversierung des Szenegraphen<br />

ausgelöst. Jedes Objekt im Graphen kann nun prüfen, ob der Mausklick innerhalb seiner Koordinaten<br />

auf dem Bildschirm liegt. Ist dies der Fall, wird der Event verarbeitet und gegebenenfalls werden alle<br />

weiteren Events an dieses Objekt weitergeleitet. Den Nutzen einer solchen Verarbeitungsstruktur<br />

haben zum Beispiel „Handle“-Obiekte. Durch einmaliges Anklicken werden alle weiteren Mausevents<br />

an diesen Objekttyp weitergeleitet, ohne die aufwendige Traversierung des Szenegraphen.<br />

Events werden auf diese Art und Weise direkt und sehr schnell verarbeitet, kombiniert mit der<br />

Funktionalität des Szenegraphen.<br />

Ein anderer Weg ist die Definition eigener Objekte mit Call-Back-Methoden. Sind sie registriert,<br />

werden sie bei Auftreten eines Events aufgerufen.<br />

1.5 Manipulatoren<br />

Die Manipulatoren sind eine Ableitung der Transformationsknoten. Sie haben eine Reihe von Kindern<br />

in Form von Handl-Objekten. Manipulatoren sind, wenn sie im Szenegraphen integriert werden, in der<br />

Lage Events aufzunehmen und zu verarbeiten. Visuell repräsentieren sie sich in Form kleiner Kugeln,<br />

Linien oder Kegel. Klickt man eines dieser Manipulatorobjekte an und hält es mit der Maus fest, so<br />

sind durch ziehen direkte Veränderungen an dem zugehörigen Objekt möglich. Der Anwender kann<br />

die Szene intuitiv mit Manipulatoren verändern.<br />

Der mitgelieferte Szeneviewer ermöglicht sogar eine direkte Manipulation ohne solche Knoten, da er<br />

normale Transformationsknoten durch Manipulatoren ersetzen kann und umgekehrt.<br />

03

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!