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)
|
 |