|
Virtual Reality: VRML
Eine faszinierende Möglichkeit zur Beschreibung von 3D-Grafiken ist die Beschreibungssprache VRML (Virtual Reality Modeling Language). Statt riesiger Animationsdateien werden auch hier nur Anweisungen geschickt, wie eine dreidimensionale Animation aussehen soll. Die so definierten Animationen werden dann auf dem lokalen Rechner erzeugt. Im Grunde ist dies keine grundlegende Neuerung, denn jedes Raytracing-Programm arbeitet mit einer solchen 3D-Sprache. Die Software berechnet anhand der Beschreibung die jeweilige Szenerie und stellt sie grafisch auf dem Bildschirm dar. VRML wird derzeit speziell auf die Bedürfnisse von WWW und Internet zugeschneidert, verfügt daher über spezifische Fähigkeiten, etwa die Einbindung von HTML-Dokumenten in 3D-Szenen. Die Entwicklung von VRML begann im Frühjahr 1994. Der Name VRML wurde damals geboren, allerdings noch als 'Virtual Reality Markup
Language'.
Um nicht bei Null zu beginnen und statt dessen eine geeignete, bereits vorhandene
3D-Technologie zu nutzen, fiel die Wahl der Entwickler auf 'Open Inventor' von Silicon
Graphics (SGI). Open Inventor unterstützt 3D-Szenarien mit Polygonobjekten, verschiedenen
Belichtungsmöglichkeiten, Materialien oder Texturen. Zudem stellte SGI noch eine erste
VRML-Parser-Library zur Verfügung, die als Grundlage für die Implementierung von 3D-Viewern
diente.
Mittlerweile hat die Entwicklung von VRML weitere Fortschritte gemacht. VRML-Szenerien
werden in eigenen Dateien abgelegt, auf die - wie bei normalen HTML-Dateien - Verweise
mittels URLs (Uniform Resource Locator) zeigen. Klickt der Benutzer in seinem WWW-Browser
auf ein solches Link, erkennt die Software die 3D-Datei und startet einen VRML-Viewer, der
die weitere Darstellung übernimmt. VRML ersetzt also weder HTML, noch stellt sie eine
Erweiterung von HTML dar. Beides sind eigenständige Sprachen, ergänzen sich jedoch
insofern, als daß Hypertext-Links von HTML zu 3D-Daten und umgekehrt möglich sind.
Die Grundlagen von VRML sind recht einfach. Jede Szenerie setzt sich aus verschiedenen
Objekten, den Nodes, zusammen. Ein Node kann ein geometrisches Gebilde, wie eine Kugel
oder ein Kegel sein. Darüber hinaus existieren Nodes, die ein bestimmtes Material und
seine Eigenschaften (Glanz, Reflexion, Farbe) festlegen, mit dem alle folgenden Nodes
dann ausgestattet werden. Einige Nodes bestimmen die Position von anderen Nodes im
dreidimensionalen Koordinatensystem von VRML. Spezielle Nodes dienen als Eltern-Objekte
für andere Nodes, so daß eine baumartige Strukturierung von Eltern- und Kind-Nodes
möglich ist. VRML erlaubt zudem eine Gliederung der Beschreibung mit Blöcken,
ähnlich wie die {}-Blöcke in C. Auf diese Weise lassen sich alle Objekte einer Szenerie
übersichtlich festlegen.
Wer sich für weitere Informationen zu VRML interessiert, kann sich unter folgenden
WWW-Adressen umsehen:
Beispiel
Das folgende Programm zeigt zwei Quader (Cube) und eine Kugel (Sphere).
#VRML V1.0 ascii
Separator {
Material { diffuseColor .8 .1 .2 transparency .5 }
Translation { translation 0 -1 0 }
Cube {
width 7
height 1
depth 7
}
Material { diffuseColor .1 .8 .2 }
Translation { translation 1.5 .5 1.5 }
Cube { }
}
Material { diffuseColor .1 .2 .8 }
Translation { translation -1.5 .5 -1.5 }
Sphere { }
Im Bild eines VRML-Browser sieht das dann so aus:
|
|
|