Index Weiter Zurück Literatur 

3.2 Möglichkeiten zur Verfeinerung

3.2.1 Ein Objekt mehrfach verwenden (Define / Reuse)

Falls der selbe Node mehrfach in  einer Szene benutzt werden soll, ist es sinnvoll, ihm einen Namen zu geben und später diesen Namen zu referenzieren. Dadurch wird die VRML-Datei kleiner d.h. übersichtlicher und schneller. Auch wirken sich Veränderungen an diesem Node automatisch auf alle Referenzen aus.
Beispiel:

....
 DEF Kugel Shape {
    appearance Appearance  {
      material Material  {
         diffuseColor  .1  .1  .1
      }
    }
  geometry Sphere {
    radius  1.5
  }
}
....
Transform  {
  scale  2  2  2
  children  [
    USE Kugel
  ]
}
....

In diesem Beispiel wird eine weiße Kugel definiert, die später in doppelter Originalgröße wiederverwendet wird.

Das definieren von Node-Namen hat noch eine wesentliche Bedeutung in dynamischen VRML-Szenerien. Darauf wird im Abschnitt über dynamisches VRML genauer eingegangen.
 

3.2.1 LOD (level of detail)

In der realen Welt verändert sich die Deutlichkeit eines Objekts, je geringer der Abstand wird. In einer VRML-Welt ist es möglich, die Detaillierung eines Objekts in Abhängigkeit der Entfernung anzugeben. Es ist auch unbedingt zu empfehlen, von dieser Möglichkeit Gebrauch zu machen. Es macht wenig Sinn ein Objekt, das vom Betrachter weit entfernt steht, in voller Auflösung zu rendern, da die Auflösung des Bildschirms diese Details nicht darstellen kann.

Die folgende Grafik zeigt die Auswirkungen des LOD mit 5 Detailstufen:

 Level of Detail

Quelle: The VRML 2.0 Handbook, Silicon Graphics Inc.
 

Die entsprechenden Nodes werden je nach Detailstufe, von der höchsten Auflösung bis zur niedrigsten, angeordnet.
Beispiel:

LOD {
  center  120   60   -160
  range  [ 50,  180 ]
  levels  [
    children Shape {
       ...
    }
    ,
    children Shape {
       ...
    }
    ,
    children   [ ]
  ]
}

In diesem Beispiel werden drei Detailstufen angegeben (Abstand: <50, 50-180, >180  vom Punkt (120,60,-160)). Die Kommatas zwischen den Stufen dienen nur der optischen Abgrenzung und können daher weggelassen werden.
Der letzte Node ist leer, d.h. bei dieser Entfernung ist das Objekt nicht zu sehen.

3.2.2 Viewpoints

Der Viewpoint Node beschreibt eine potentielle Position und Blickrichtung um die Szene zu betrachten. Hierbei kann auch noch ein "sichtbarer Bereich" angegeben werden, der einschränkt, wieviel von der Szene aus dieser Position gesehen werden kann (ähnlich einem Weitwinkel-Objektiv).
Die Standard-Betrachterposition ist (0,0,10).

Es gibt zwei wesentliche Dinge zu beachten:
1.  Der sichtbare Bereich eines Viewpoints wird im Bogenmaß angegeben.
2.  Ein vorgelagerter Transformation Node beeinflußt den angegebenen Viewpoint.

Beispiel:

DEF Kamera1 Viewpoint {
   position   30  40  -10
  orientation   -.07   1   0   .04
  description  ?Nahsicht der Kapelle"
}

Im Feld position wird die Position des Betrachters im Raum angegeben, orientation beschreibt die Drehung (also die Blickrichtung). Die unter description angegebene Beschreibung kann im Browser als Erläuterung dargestellt werden.

Es besteht die Möglichkeit, mehrere Viewpoints einer Szene zu erstellen (bspw. die besten Betrachterpositionen). Der Benutzer kann sich dann von einem Viewpoint zum nächsten "Teleportieren lassen" und sich somit die Mühe sparen, selbst durch die Szene zu navigieren.
 

3.2.3 WWW-Anchors

Es besteht die Möglichkeit, innerhalb einer VRML-Welt Links zu anderen Quellen (VRML-Dateien, HTML-Seiten, Bitmaps etc.) einzubinden. Die referenzierte URL ersetzt dann die dargestellte VRML-Szene. Wie bei einem HTML Hyperlink ändert sich die Form des Mauszeigers, sobald man sich damit über einem Anchor-Node befindet. Dieser Anchor kann z.B. einem Node in der Szene zugewiesen werden.

Beispiel:

Anchor {
  url "beschreibung.html"
  description "Beschreibung der Szene"
  children [
    Shape {
      geometry Box { size 1 1 1 }
    }
  ]
}

Im Feld url wird der (absolute oder relative) Pfad zur referenzierten Datei angegeben. Die Angaben unter description können im Browser angezeigt werden.
Es ist möglich, mehrere children anzugeben, um an mehreren Stellen Links einzufügen.



Index Weiter Zurück Literatur