<<  Grundlagen 1  >>

VRML – Knoten

In den Knoten, die quasi als Bausteine eines Szenegraphen betrachtet werden können sind alle Elemente und ihre Eigenschaften, sowie die Szenengestaltung definiert.
Knoten bestehen
  • aus einem Typbezeichner bzw. Namen der bei selbst definierten Knoten frei gewählt werden kann
  • sowie einem Feld mit Parametern für deren Attribute und Erscheinungsformen. Diese Werte stehen in geschweiften Klammern und sind nach den Syntaxregeln an einen bestimmten Feldtyp gebunden. Viele dieser Felder sind optional d.h. sie verwenden einen Defaultwert falls dieser nicht explizit eingegeben wird. In den Feldern können wiederum weitere Knoten stehen daher ergibt sich im Regelfall eine Baumstruktur.

Wie auch in Programmiersprachen üblich sind für Felder auch bestimmte Datentypen vorgeschrieben. Die wichtigsten dieser Typen sind Reelle Zahlen (Real), Ganze Zahlen (Integer), Zeichenketten (Strings) oder logische Werte (Boolsche Werte: true, false). Auf die richtige Schreibweise Groß-Kleinschreibung, Sonderzeichen usw. muss geachtet werden.

Der SHAPE-Knoten

Mit Hilfe der Shape – Knoten (Darstellungsknoten, Objektknoten) kann man vordefinierte einfache geometrische Grundformen verwenden und mit Eigenschaften versehen. An geometrischen Grundformen stehen folgende Objekte zur Verfügung:

a) Geometry (Geometrische Objekte)

  • BOX (Quader), definiert durch Breite, Höhe und Tiefe
  • CONE (Kegel), definiert durch Grundradius und Höhe
  • CYLINDER (Zylinder), definiert mit Radius und Höhe
  • SPHERE (Kugel), definiert mit dem Radius
    Für die Konstruktion eigener Objekte dienen weitere geometrische Hilfsmittel, aus denen komplexere Formen entwickelt werden können.
  • TEXT (3d-Textstring)
  • ELEVATIONGRID (Höhenprofil, X-Z-Koordinatenmatrix mit Größe und Abstand
  • COORDINATE POINTSET (Punktkoordinaten)
  • INDEXEDLINESET (Linien aus indizierten Koordinatensets)
  • INDEXEDFACESET (Flächen aus indizierten Linien)

b) Appearence (Materialeigenschaften)

  • Im Appearence-Knoten können den geometrischen Objekten Eigenschaften zugeordnet werden die in den Attributfeldern material und texture definiert werden.
  • Im Materialknoten werden Farben als 24 bit RGB-Werte definiert, wobei ein Wertebereich von 0.0 -1.0 statt wie vielfach üblich 0-255 verwendet wird. Bei selbstleuchtenden Objekten wird die Bezeichnung emmissiveColor verwendet, während diffus angeleuchtete Objekte mit diffuseColor bezeichnet werden. Im Feld transparency lässt sich die Transparenz eines Objektes angeben, was etwa für die Darstellung von Wasser oder Glas wichtig ist.
  • Im texture Knoten (ImageTexture und MovieTexture) können Texturen auf räumliche Objekte projiziert werden. Zu diesem Zweck werden die im Internet üblichen Graphikformate JPG, GIF, PNG sowie das Videoformat MPEG verwendet. Letzteres erlaubt die Schaffung sogenannter dynamischer Texturen. Eine dynamische Textur kann etwa für Hintergründe (z.B. ziehende Wolken verwendet werden). Die Graphikfiles müssen nicht unbedingt im selben Verzeichnis wie die 3d-Objekte liegen sondern können auf verschiedenen Webservern liegen und über die URL lokalisiert werden.)

Transformations-Knoten

Wie üblich können die Grundkörper geometrischen Transformationen unterzogen werden, Parallelverschiebung (translation, festgelegt durch den Schiebungsvektor), Drehung (rotation, festgeleg durch vier Werte, die ersten drei bestimmen die Richtung der Drehachse, die letzte den Drehwinkel im Bogenmaß), Affinität mit den Koordinatenachsen als Eigenvektoren (scale, festgelegt durch die Eigenwerte)
Für die Positionierung der Objekte werden die entsprechenden Transformationsparameter (translation, rotation und scale) in einem Gruppenknoten zusammengefasst. Der Transformationsknoten ist ein solcher Gruppenknoten, der es erlaubt sich auf verschiedene Knoten zu beziehen, die in einer Liste zusammengefasst sind.

Knoten zur Szenengestaltung

 Um die Objekte einer VRML-Welt besser bearbeiten und darstellen zu können, gibt es weitere Knoten:
  • Definition von Szenenbeleuchtungen:
    Grundsätzlich stehen 3 Arten von Lichtquellen zur Verfügung
    - DirectionalLight (parallel gerichtetes Licht, z.B. Sonne)
    - PointLight (Punktlichtquelle, z.B. Glühlampe)
    - SpotLight (kegelförmige Lichtquelle, z.B. Taschenlampe)
    Leider erzeugen diese Lichtquellen keine Schatten, da dies zu aufwendigen Berechnungen führen würde und die heutige Hardware vor allem bei dynamischen Szenen vielfach überfordert wäre. Man bezeichnet diese Berechnungen der Schattenreflektionen auch als Raytracing. Mit entsprechender extern angekoppelter Software wäre dies zwar möglich, aber im Normalfall werden Schattenflächen nur für statische Welten simuliert.
  • Hintergründe
    Die Definition eines Hintergrundes ist durch die Verwendung des Background Knoten möglich und lässt Szenen vielfach wirklichkeitstreuer erscheinen. Dabei werden Farbübergänge, eine Horizont- linie oder ein Hintergrundbild virtuell auf eine unendlich große Kugel projiziert, welche die Szene vollständig umgibt.
  • Knoten für Navigation und Betrachterposition
    Prinzipiell kann man mittels des Browsers frei in einer Szene navigieren, allerdings können im VRML-Skript selbst Werte dafür vordefiniert werden. Wichtig dabei sind die sogenannten Viewpoints, die im Browser in einem eigenen Menü dargestellt werden und daher leicht zu handhaben sind.
    Auch die Bewegung des Betrachters innerhalb einer Szene kann im Script vordefiniert sein, wobei der Bewegungstyp und die Geschwindigkeit als Parameter dienen. Mit dem Attribut "headlight" kann man auch die Standardbeleuchtung (Helmbeleuchtung) ein- und ausschalten.
    Die Informationen die vom VRML-Script an den Browser übergeben werden bezieht sich dabei auf die Präsentation einer realen Welt in einer synthetischen Umgebung; man bezeichnet diese fiktive Person als Avatar.

Koordinatensystem

  • kartesisches Koordinatensystem
  • rechtshändig: x nach auf dem Bildschirm nach rechts, y auf dem Bildschirm nach oben, z in den Bildschirm hinein (vom Betrachter weg)
  • Standardeinheit: Meter (Entfernung), Radiant (Winkel)

<<   >>