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.
Das Ergebnis dieser Programmzeilen wird im nächsten Bild gezeigt.<br />
2.5 Sensoren und Ereignisse in <strong>VRML</strong><br />
Abbildung 9<br />
Ereignisse dienen in <strong>VRML</strong> der Kommunikation der Knoten untereinander. Die Knoten besitzen dazu<br />
spezielle Felder, die das Ereignis aufnehmen oder abschicken können. Durch ROUTE werden zwei<br />
Knoten über die entsprechenden Felder verbunden.<br />
Die gesamte Interaktion wird komplett über Sensoren gesteuert, die in <strong>VRML</strong> eingebaute Konstrukte<br />
für Animation und Interaktion sind. Sensorenknoten erzeugen Ereignisse, welche die Animation oder<br />
Interaktion steuern. Diese Knoten werden mit sogenannten Interpolatoren verbunden, die vom<br />
Entwickler vorher festgelegte Zwischenwerte enthalten. Diese vorgefertigte Variante reicht für einfache<br />
Animationen aus, komplexere Abläufe sind jedoch nur mit Hilfe von Scriptknoten oder über EAI<br />
realisierbar. Der Scriptknoten nimmt dabei die Position des Interpolator-Knotens ein. Sobald der<br />
Sensorknoten ein Ereignis sendet, berechnet der Scriptknoten den neuen Wert und reicht ihn zum<br />
Beispiel an einen Knoten weiter, der ein geometrisches Objekt beschreibt. Dies kann dann zur<br />
Veränderung der Größe oder Farbe des Objektes führen, es kann aber auch eine Animation mit<br />
nichtlinearer Berechnung von Positionswerten generiert werden.<br />
<strong>VRML</strong> bietet verschiedene Sensoren an, um Ereignisse zu erzeugen. Neben einem „TimeSensor“ gibt<br />
es Sensoren, die auf die Auswahl eines Objektes mit der Maus reagieren. Dabei unterscheidet man<br />
Sensorentypen für Auswahl (TouchSensor, Anchor) und Objektinteraktion (CylinderSensor, Plane-<br />
Sensor und SphereSensor). Weitere Funktionalität muss dann wiederum über Scriptknoten geregelt<br />
werden.<br />
Ein einfaches Beispiel für einen Sensor zeigt das folgende Programm.<br />
10