Fortschrittsanzeige

1.6.10

 

VRML-Spezifikationen Teil 1

Auf dieser Seite:

Knoten im Überblick | Knoten und Felder | Felder und Ereignisse

Hier werden einige zusammenfassende Daten über VRML wiedergegeben. Mehr dazu enthält:

 
WWWlink

http://www.web3d.org/x3d/specifications/vrml/VRML1.0/index.html

 
 

Die erste Zeile eines VRML-Programms lautet:

#VRML V2.0 utf8

Darin wird dem VRML-Player (Interpreter der folgenden Programmzeilen) mitgeteilt, dass es sich um ein VRML-Programm in der Version 2 handelt und dass die Schrift gemäß utf8 kodiert ist.

UTF8: ISO/IEC 10646-1:1993 Information technology - Universal Multiple-Octet Coded Character Set (UCS) - Part 1: Architecture and Basic Multilingual Plane.

 
 

Knoten im Überblick

 
 

Gruppenknoten (grouping nodes):
Diese gruppieren Kindknoten, bzw. fassen diese zu Gruppen zusammen.

  • Anchor
  • Billboard
  • Collision
  • Group
  • Inline
  • LOD
  • Switch
  • Transform
  • PROTO'd grouping node

Kindknoten (children nodes):

  • Anchor
  • Billboard
  • LOD
  • PROTO'd children
  • nodes
  • ScriptShape
  • Switch
  • Sound
  • Transform
  • WorldInfo

Sensoren:

  • CollisionCylinderSensor
  • PlaneSensor
  • ProximitySensor
  • SphereSensor
  • TimeSensor
  • TouchSensor
  • VisibilitySensor

bindbare Knoten:

  • Background
  • Fog
  • NavigationInfo
  • Viewpoint

Interpolatoren:

  • ColorInterpolator
  • CoordinateInterpolator
  • NormalInterpolator
  • OrientationInterpolator
  • PositionInterpolator
  • ScalarInterpolator

Lichtquellen:

  • DirectionalLight
  • PointLight
  • SpotLight
  • Fog
  • Group
  • Inline

Objektknoten:

  • Appearance
  • AudioClip
  • Box
  • Color
  • Cone
  • Coordinate
  • Cylinder
  • ElevationGrid
  • Extrusion
  • ImageTexture
  • IndexedFaceSet
  • IndexedLineSet
  • Material
  • MovieTexture
  • Normal
  • PointSet
  • Sphere
  • Text
  • TextureCoordinate
  • TextureTransform

Geometrische Knoten:

Die Zahlen in den geschweiften Klammern stellen nur Beispiele dar und bedeuten Meterangaben.

  • Sphere { radius 0.5 }
  • Cone { bottomRadius 3 height 5 }
  • Box { size 0.5 2 3 }
  • IndexedLineSet
  • IndexedFaceSet
  • PointSet
  • Text { string "Beispieltext" fontStyle FontStyle { size 2 family "SANS" style "BOLD" } }

Erscheinungsbild:

  • Shape { geometry Box {size 1 4 2 } appearance Appearance {material …...texture …..} }
  • Oberflächenfarbe Material { diffuseColor 0.2 0.3 0.8 ambientIntensity 0.2 emmissiveColor 0 0.3 0.1 shininess 0.8 transparency 0.8 }
  • Oberflächentextur ImageTexture {url "Muster.jpg" repeatS TRUE repeatT TRUE}
  • Außerdem: PixelTexture, MovieTexture
 
 

Knoten und Felder

 
 

Im Folgenden werden die Definitionen einiger wichtiger Knoten wiedergegeben (Public Interface). Sie enthalten die Spezifikationen aller Felder, Ereignisse, Namen, Datentypen und voreingestellten Werte (Default-Werte). Im konkreten Fall - bei der Anwendung in einer wrl-Datei - brauchen Feld- sowie Datentyp und natürlich Felder, deren Default-Werte richtig sind, nicht aufgeführt zu werden (man vergleiche z.B. Transform in den Beispielen).

Gruppenknoten Transform

  • Transform { children [ Shape { ... } translation 0 1 0 rotation 0 1 0 1.57 scale 1 2 1 ]}
 
 
 

Verschachtelte Transformationen:

  • Transform {translation 0 1 0 children [ Transform {translation 001 children [ Shape { ... } ]} ]}

Die Feldtypen werden weiter hinten erklärt!

Datentypen

Die Abkürzungen für die Datentypen haben die folgende Bedeutung:

  • SF = SingleFieldValue: Felder bzw. Ereignisse mit einzelnen Werten
  • MF = MultipleFieldValue: Werte in eckigen Klammern
  • SFBool = Boolsche Variable:TRUE oder FALSE
  • SFColor = 3 Fließkommawerte: 0.0 bis 1.0 (oderSMColor)
  • SFFloat = Fließkommazahl einfacher Genauigkeit (oder SMFloat)
  • SFImage = Pixel-Beschreibung eines Bildes
  • SFInt32 = 32-Bit-Festkommazahl (oder MFInt32)
  • SFRotation = 3 Zahlen für die Rotationsache + Rotationswinkel (oder SMRotation)
  • SFString = Zeichenkette aus dem utf8-Zeichensatz (oder MFString)
  • SFTime = Anzahl Sekunden seit dem 1.1.1970 als doppeltgenaue Fließkommazahl (oder MFTime)
  • SFVec2f = Vektor: 2 Fließkommazahlen (oder MFVec2f)
  • SFVec3f = Vektor: 3 Fließkommazahlen (oder MFVec3f)

Beispiele:

  • SFFloat => SingleFieldValue als Fließkommavariable
  • SFVec3f => SingleFieldValue als dreiminensionaler Vektor im Fließkommaformat
 
 

Felder und Ereignisse

 
 

Die elementaren Daten sind in den Feldern eines Knotens gespeichert und haben immer das oben beschriebene Format, deshalb kann ohne gesonderte Definitionen bzw. Deklarationen mit ihnen gearbeitet werden. Andererseits muss der Szenendesigner bei seiner Arbeit dies berücksichtigen, wenn er z.B. eigene Knoten entwirft (Prototyping oder Einbindung von Scriptknoten). Die Knotenspezifikation (siehe oben) beschreibt den Typ, den Namen und die Default-Werte seiner Felder. Es gibt vier Arten von Feldern:

field und exposedField sowie eventIn und eventOut.

Die beiden letztgenannten dienen der Dynamisierung einer Szene und werden im Teil 2 beschrieben. Die beiden Arten field und exposedField definieren den Initialwert für den Knotenzustand. Der field-Wert eines Knotens kann zur Laufzeit nicht mehr geändert werden. Bei einem exposedField kann dies durch einen andern Knoten geschehen, indem er eine Nachricht sendet. Somit wird das exposedField wird nur bei dynamisch veränderlichen Szenen ausgenutzt. Bei statischen Szenen übernimmt exposedField die Funktion von field. Bei dynamischen Szenen können Knoten eine Anzahl von eingehenden set-Ereignissen empfangen, die als eventIn bezeichnet werden (z.B.: set_position , set_color , set_on). Ebenso können von einem Knoten Ausgangs-Signale (Ereignisse) gesandt werden (eventOut) die anzeigen, dass im Knoten etwas geändert wurde (z.B.: position_changed , color_changed , on_changed). Das Feld exposedField beinhaltet beide Typen: eventIn und eventOut.

 
Hyperlink

Vertiefung: VRML-Spezifikationen Teil 2 (Lerneinheit Bewegung in virtuellen Welten)