Willkommen zu Realjocs Vrml2.0 Workshop

Vrml 2.0 Kurzinfo:

  • unterstützt folgende Formate:
    Grafik: JPG, PNG, GIF,
    Video: MPEG
    Sound: MID, WAV
  • Hirachische Struktur(nicht mehr statisch wie VRML1.0)
  • 5 verschiedene Grupppenknoten
  • 28 vordefinierte Kindknoten
  • 21 weitere Knoten für die Erzeugung und Gestaltung
    (Aussehen) geometrischer Objekte: Objektknoten!
  • Einbindung von Sounddateien in eine virtuelle Umgebung und deren Positionierung in der 3 Dimension, sowie deren Ausrichtung ist jetzt möglich und frei definierbar.
  • Animationerstellung ist wesentlich umfangreicher als in Vrml1.0.

Vrml2.0 zu programmieren gestaltet sich einfacher als viele vielleicht annehmen würden. Man benötigt einen einfachen ASCII Editor wie zb. Notepad von Windows. Jeder andere ASCII Editor geht natürlich auch, da der Notepad ja nicht gerade viel Komfort bietet. Mein persönlicher Favorit ist der NoteTab Light, der auch als Freeware zu Verfügung steht. Einfach Editor öffnen, neue Datei erstellen und los gehts...

Workshop: Teil I Zeichenstift positionieren und die 4 Grundkörper !
Zeichenstift positionieren Zu Beginn unseres ersten Quelltextes muß folgende Zeile stehen:
#VRML V2.0 utf8
Um jetzt unsere erste kleine 3D Welt zu generieren benötigen wir unseren ersten Knoten:

Transform {
                       translation 0 0 0
children [
...

Mit "translation 0 0 0" definieren wir im virtuellen Kordinatensystem mit den X Y Z Achsen den sogenanten Zeichenstift, der den Mittelpunkt des zu zeichnenden Objektes darstellt. Siehe Bild l:  

Bild 1: Zeichenstift mit 0 0 0 im Mittelpunkt des Koordinatensystems                 Bild 2: Verschiebung des Zeichenstiftes aud der Y Achse

Wie kann man sich den Zeichenstift erklären?
Stellen Sie sich einfach vor, Sie spielen Schiffeversenken. Um das gegnerische Boot zu versenken, müssen Sie Ihrem Gegenspieler die genauen Koordinaten angeben, damit er sich anhand der Koordinaten orientieren kann, ob Ihre Attacke erfolgreich war oder nicht. Um den Versuch zu dokumentieren, wird ein Kreuz an der definierten Stelle gemacht, dieses Kreuz ist unser Punkt, der sich aus 3 Werten zusammen setzt; einem positiven oder negativen X, Y und Z Wert. Um einen neuen Punkt zu definieren müssen, wir unseren Stift (Zeichenstift) verschieben. Der Zeichenstift kann beliebig oft in einem Vrml Projekt verschoben werden und kann beliebig viele Kindknoten enthalten (untergeordnete Knoten).

Beachten Sie, das wir mit dem Zeichenstift den Mittelpunkt des zu definierenden Objektes verschieben! Der Zeichenstift ist nicht sichtbar, nur das Resultat seiner Verschiebung.

Die 4 Grundkörper:

Würfel:
...

Shape {
               geometry Box { }
          }

Mit "geometry Box" definieren wir einen Würfel, ohne weitere Angaben, wie in dem obigen Beispiel, hat der Würfel die default (voreingestellten) Größe 2 2 2 ,d.h. 2 Einheiten Breite(X) 2 Hoch(Y), 2 Tief(Z). Sie können natürlich eigene Größenangaben verwenden mit dem Feldknoten "size":

...

Shape {
               geometry Box { size 2 3 1 }
          }
...

Kegel:

...

Shape {
                 geometry Cone { }
          }
...

Mit "geometry Cone" definieren wir einen Kegel mit den Defaultwerten 1 für den Grundradius und 2 für die Höhe. Mit eigenen Werten können die Felder "bottomRadius" und "height" belegt werden:
...

Shape {
              geometry Cone {
                                         bottomRadius 0.8
                                         height 2.9
                                      }
          }
...

Zylinder:

...

Shape {
             geometry Cylinder { }
          }
...

Mit "geometry Cylinder" wird ohne weitere Angaben in der geschweiften Klammer ein Radius Standartwert von 1 und eine Höhe von 2 definiert oder mit eigenen Werten:

...

Shape {
                geometry Cylinder {
                                              radius 0.8
                                              height 2.9
                                             }
          }
...

Kreis:
...

Shape {
             geometry Sphere { }
          }
...

Mit "geometry Sphere" wird ohne weitere Angaben in der geschweiften Klammer ein Radius Standartwert von 1 angegeben oder mit eigenen Werten:
...

Shape {
              geometry Sphere { radius 4.0 }
          }
...

Um jetzt alle vier Körper darzustellen, muß der Zeichenstift 4 mal verschoben werden, sonst liegen alle 4 Objekte auf einem Punkt.

Unser ganzer Quelltext:

#VRML V2.0 utf8

# mit der Raute am Anfang einer Zeile können Sie Kommentare einfügen
#Würfel mit Zeichenstift auf Punkt 0(X) 0(Y) 0(Z) und Defaultgröße
Transform {
translation 0 0 0
children [
Shape {
geometry Box { }
}
]
}
#Kegel mit Zeichenstiftverschiebung auf 2(X) und Defaultgröße Transform {
translation 2 0 0
children [
Shape {
geometry Cone { }
}
]
}
#Cylinder mit Zeichenstiftverschiebung auf 4(X) und Defaultgröße
Transform {
translation 4 0 0
children [
Shape {
geometry Box { }
}
]
}
#Kugel mit Zeichenstiftverschiebung auf 6 (X) und Defaultgröße
Transform {
translation 6 0 0
children [
Shape {
geometry Sphere { }
}
]
}

Diese Datei muss jetzt im WRL Format gespeichert werden. Dazu gibt man einfach die Endung .wrl hinter dem Namen des Projektes an z.B : "beispiel.wrl".

Um sich Ihre selbst gerade erstellte Vrml Datei anzuschauen, benötigen Sie einen Browser, wie den Internet Explorer mit einem Plug-In wie z.B. den derzeit verfügbaren Cortona VRML Client: Jetzt hier installieren! Ist der Client installiert können sie die zuvor erstellten Dateien in 3D anschauen. Testen Sie ob Ihr Browser bereits Vrml komform ist, einfach auf beispiel1.wrl klicken: beispiel1.wrl Wird die Datei angezeigt ist alles ok wenn nicht, Cortona VRML Client: Jetzt hier installieren!

Aufgabe: Erstellen Sie die 4 Grundkörper mit eigenen Größenangaben und positionieren Sie diese so, daß sie sich nicht schneiden.

P.S.: Zugegeben die 4 Grundkörper sind noch etwas farblos, das wird Bestandteil des nächsten Workshops:

Die Oberflächeneigenschaften