Stuhl-Views

VRML kennt zur Gestaltung der Welt noch die Knoten:

um zusätzliche Einstellungen für das Betrachten der Welt vorzunehmen, bzw. zusätzliche Informationen in den Quelltext aufzunehmen.

Ausgangspunkt ist wieder das Beispiel "Blauer Stuhl".

EXTERNPROTO Stuhl [   
  exposedField  SFColor  color  
  field 	SFVec3f 	pos 
  field 	SFRotation  	rotation  
  field 	SFVec3f  	size 
] "http://www.debacher.de/vrml/beispiele/prototyp-stuhl.wrl#Stuhl"

Stuhl {
  pos 0 -2 0
  rotation  1 0 0 -0.1
 }

Alle folgenden Darstellungen zeigen übrigens die gleiche Welt!

 

1. WorldInfo

Über den Knoten WorldInfo lassen sich im Quelltext Informationen unterbringen, die ansonsten keinen sichtbaren Effekt haben.
WorldInfo {
  title "Blauer Stuhl"
  info [ 
    "Copyright 2003 erstellt von Uwe Debacher"
    "Dieses Modell ist frei fuer nichtkommerzielle Anwender" 
    "http://www.debacher.de"
    "Diese Information muss unveraendert in der Datei verbleiben"
  ]
}    

Manche Browser zeigen den title-Text in der Kopfzeile des Fensters an.

   

2. NavigationInfo

Über den Knoten NavigationInfo lassen sich Vorgaben für die Bewegung innerhalb der Welt vornehmen.
NavigationInfo { 
  avatarSize [0.25, 1.6, 0.75] 
  headlight TRUE 
  speed 1.0 
  type "WALK" 
  visibilityLimit 0.0 
} 

Die erste Zeile gibt die Abmessungen des Betrachters vor. Dessen Größe ist wichtig, wenn er z.B. Stufen erklimmen soll.
Weiter kann man vorgeben, ob das Helmlicht brennen soll, oder nicht. Hat man in seiner Welt spezielle Beleuchtungseffekte vorgesehen, dann sollte man das Helmlich ausschalten.
Mit speed gibt man die Laufgeschwindigkeit in m/s an und mit type kann man WALK, EXAMINE, FLY und NONE vorgeben.
Weiter kann man einstellen, wie weit der Betrachter sehen kann. Ein Wert von 0.0 macht keine Beschränkung für die Sichtweite.

 

3. Die Viewpoints


Auf diesen Stuhl kann man nun aus verschiedenen Richtungen blicken, also verschiedene Betrachtungspunkte (Viewpoints) benutzen.
Viewpoint {
  position 0 0 10
  orientation 0 0 1 0
  jump FALSE
  description "blauer Stuhl von Hinten"
}

Viewpoint {
  position 0 0 -10
  orientation 0 1 0 3.14159
  jump FALSE
  description "blauer Stuhl von Vorn"
}

Viewpoint {
  position  10 0 0
  orientation 0 1 0 1.571
  description "blauer Stuhl von Rechts"
}

Viewpoint {
  position  -10 0 0
  orientation 0 1 0 -1.571
  description "blauer Stuhl von Links"
}

Jeder Viewpoint gibt an, an welcher Position der virtuelle Betrachter zu finden ist und in welche Richtung er jeweils schaut. Beide Angaben sind hier jeweils passend verändert.

Zwischen den einzelnen Betrachtungspunkten kann man jederzeit wechseln, über das Schaltelement View ziemlich in der Mitte der unteren Funktionsleiste von Cortona.

Der Eintrag jump FALSE bewirkt, dass die Bewegung zum Zielpunkt kontinuierlich erfolgt. Bei jump FALSE wird der Zielpunkt schlagartig angesteuert.

Hat man in einer Welt verschiedene Viewpoints definiert, so wird normalerweise beim Laden der erste Viewpoint aktiviert. Will man gezielt einen anderen Viewpoint vorgeben, so muss man den jeweiligen Viewpoint mittels DEF benennen:

DEF Rechts Viewpoint {
  position  10 0 0
  orientation 0 1 0 1.571
  description "blauer Stuhl von Rechts"
}

Anschließend kann man diesen Viewpoint dann direkt aufrufen mittels

stuhlview.wrl#Rechts

Die vorliegenden Darstellungen machen von dieser Möglichkeit regen Gebrauch.

Hinweis: Leider funktioniert diese Seiten in manchen optimierenden Browsern, z.B. Opera, nicht richtig. Hier wird die Welt anscheinend nur einmal geladen, dadurch wird die unterschiedliche  Ansteuerung der Viewpoint ignoriert.


geschrieben von Uwe Debacher, letzte Änderung am 18.11.2003