Lexikon

VRML - Virtual Reality Modeling Language

Durch die immer bessere Hardware ist es heute nicht mehr nötig, für anspruchsvolle 3D-Grafiken spezielle Grafik-Workstations zu verwenden. Auf modernen PCs kann jeder durch dreidimensionale Welten fliegen. Um solche Welten zu definieren und sie über das Internet zu verbinden, wurde die Sprache VRML entwickelt. In diesem Beitrag geben wir einen Überblick über die grundlegenden Konzepte der Version 2.0 von VRML.

Geschichte von VRML

Im Frühling 1994 diskutierte auf der ersten WWW-Konferenz in Genf eine Arbeitsgruppe über Virtual Reality-Schnittstellen für das WWW. Es stellte sich heraus, daß man eine standardisierte Sprache zur Beschreibung von 3D-Szenen mit Hyperlinks brauchte.

Diese Sprache erhielt in Anlehnung an HTML zuerst den Namen Virtual Reality Markup Language. Später wurde sie in Virtual Reality Modeling Language umbenannt. Die VRML-Gemeinde spricht die Abkürzung gerne „Wörml" aus. Basierend auf der Sprache Open Inventor von Silicon Graphics (SGI) wurde unter der Federführung von Mark Pesce die Version 1.0 von VRML entworfen.

Im Laufe des Jahres 1995 entstanden eine Vielzahl von VRML-Browsern (u.a. WebSpace von SGI) und Netscape bot schon sehr früh eine hervorragende Erweiterung, ein sogenanntes PlugIn, für seinen Navigator an. Die virtuellen Welten, die man mit VRML 1.0 spezifizieren kann, sind zu statisch. Zwar kann man sich mit einem guten VRML-Browser flott und komfortabel durch diese Welten bewegen, aber die Interaktion ist auf das Anklicken von Hyperlinks beschränkt. Im August ’96, anderthalb Jahre nach der Einführung von VRML 1.0,wurde auf der SIGGraph ’96 die Version VRML 2.0 vorgestellt. Sie basiert auf der Sprache Moving Worlds von Silicon Graphics. Sie ermöglicht Animationen und sich selbständig bewegende Objekte. Dazu mußte die Sprache um Konzepte wie Zeit und Events erweitert werden. Außerdem ist es möglich, Programme sowohl in einer neuen Sprache namens VRMLScript oder in den Sprachen JavaScript oder Java einzubinden.

Was ist VRML?

Die Entwickler der Sprache VRML sprechen gerne von virtueller Realität und virtuellen Welten. Diese Begriffe scheinen mir aber zu hoch gegriffen für das, was heute technisch machbar ist: eine grafische Simulation dreidimensionaler Räume und Objekte mit eingeschränkten Interaktionsmöglichkeiten. Die Idee von VRML besteht darin, solche Räume über das WWW zu verbinden und mehreren Benutzern gleichzeitig zu erlauben, in diesen Räumen zu agieren. VRML soll architekturunabhängig und erweiterbar sein.

Außerdem soll es auch mit niedrigen Übertragungsraten funktionieren. Dank HTML erscheinen Daten und Dienste des Internets im World Wide Web als ein gigantisches verwobenes Dokument, in dem der Benutzer blättern kann. Mit VRML sollen die Daten und Dienste des Internets als ein riesiger Raum, ein riesiges Universum erscheinen, in dem sich der Benutzer bewegt – als der Cyberspace.

Grundlegende Konzepte von VRML 2.0

VRML 2.0 ist ein Dateiformat, mit dem man interaktive, dynamische, dreidimensionale Objekte und Szenen speziell fürs WorldWideWeb beschreiben kann. Schauen wir uns nun an, wie die in dieser Definition von VRML erwähnten Eigenschaften in VRML realisiert wurden.

3D Objekte

Dreidimensionale Welten bestehen aus dreidimensionalen Objekten, die wiederum aus primitiveren Objekten wie Kugeln, Quadern und Kegeln zusammengesetzt wurden. Beim Zusammensetzen von Objekten können diese transformiert, d.h. z.B. vergrößert oder verkleinert werden. Mathematisch lassen sich solche Transformationen durch Matrizen beschreiben und die Komposition von Transformationen läßt sich dann durch Multiplikation der zugehörigen Matrizen ausdrücken. Dreh- und Angelpunkt einer VRML-Welt ist das Koordinatensystem. Position und Ausdehnung eines Objektes können in einem lokalen Koordinatensystem definiert werden. Das Objekt kann dann in ein anderes Koordinatensystem plaziert werden, indem man die Position, die Ausrichtung und den Maßstab des lokalen Koordinatensystems des Objektes in dem anderen Koordinatensystem festlegt. Dieses Koordinatensystem und die in ihm enthaltenen Objekte können wiederum in ein anderes Koordinatensystem eingebettet werden. Außer dem Plazieren und Transformieren von Objekten im Raum, bietet VRML die Möglichkeit, Eigenschaften dieser Objekte, etwa das Erscheinungsbild ihrer Oberflächen festzulegen. Solche Eigenschaften können Farbe, Glanz und Durchsichtigkeit der Oberfläche oder die Verwendung einer Textur, die z.B. durch eine Grafikdatei gegeben ist, als Oberfläche sein. Es ist sogar möglich MPEG-Animationen als Oberflächen von Körpern zu verwenden, d.h. ein MPEG-Video kann anstatt wie üblich in einem Fenster wie auf einer Kinoleinwand angezeigt zu werden, z.B. auf die Oberfläche einer Kugel projiziert werden.

VRML und WWW

Was VRML von anderen Objektbeschreibungssprachen unterscheidet, ist die Existenz von Hyperlinks, d.h. durch Anklicken von Objekten kann man in andere Welten gelangen oder Dokumente wie HTML-Seiten in den WWW-Browser laden. Es ist auch möglich, Grafikdateien, etwa für Texturen, oder Sounddateien oder andere VRML-Dateien einzubinden, indem man deren URL, d.h. die Adresse der Datei im WWW angibt.

Interaktivität

Außer auf Anklicken von Hyperlinks können VRML-Welten auf eine Reihe weiterer Ereignisse reagieren. Dazu wurden sogenannte Sensoren eingeführt. Sensoren erzeugen Ausgabe-Events aufgrund externer Ereignisse wie Benutzeraktionen oder nach Ablauf eines Zeitintervalls. Events können an andere Objekte geschickt werden, dazu werden die Ausgabe-Events von Objekten mit den Eingabe-Events anderer Objekte durch sogenannte ROUTES verbunden.

Ein Sphere-Sensor zum Beispiel wandelt Bewegungen der Maus in 3D-Rotationswerte um. Ein 3D-Rotationswert besteht aus drei Zahlenwerten, die die Rotationswinkel in Richtung der drei Koordinatenachsen angeben. Ein solcher 3D-Rotationswert kann an ein anderes Objekt geschickt werden, das daraufhin seine Ausrichtung im Raum entsprechend verändert. Ein anderes Beispiel für einen Sensor ist der Zeitsensor. Er kann z.B. periodisch einen Event an einen Interpolator schicken. Ein Interpolator definiert eine abschnittsweise lineare Funktion, d.h. die Funktion ist durch Stützstellen gegeben und die dazwischenliegenden Funktionswerte werden linear interpoliert. Der Interpolator erhält also einen Eingabe-Event e vom Zeitsensor, berechnet den Funktionswert f(e) und schickt nun f(e) an einen anderen Knoten weiter. So kann ein Interpolator zum Beispiel die Position eines Objekts im Raum in Abhängigkeit von der Zeit festlegen. Dies ist der grundlegende Mechanismus für Animationen in VRML.

Dynamik

Vorreiter der Kombination von Java und Java Script-Programmen mit VRML-Welten war Netscape’s Live3D, bei dem VRML 1.0 Welten über Netscape’s LiveConnect-Schnittstelle von Java-Applets oder JavaScript-Funktionen innerhalb einer HTML-Seite gesteuert werden können. In VRML 2.0 wurde in die Sprache ein neues Konstrukt, der sogenannte Skriptknoten, aufgenommen. Innerhalb dieses Knotens kann Java und Java Script-Code angegeben werden, der z.B. Events verarbeitet. Im VRML 2.0 Standard wurden Programmierschnittstellen (Application Programming Interface API) festgelegt, die den Zugriff auf VRML-Objekte von Programmiersprachen aus erlauben, nämlich das Java API und das JavaScript API. Das API ermöglicht es, daß Programme Routes löschen oder hinzufügen und Objekte und ihre Eigenschaften lesen oder ändern können. Mit diesen Programmiermöglichkeiten sind der Phantasie nun kaum noch Grenzen gesetzt.

VRML und dann?

Eines der ursprünglichen Entwicklungsziele von VRML bleibt auch bei VRML 2.0 ungelöst: Es gibt immer noch keinen Standard für die Interaktion mehrerer Benutzer in einer 3D-Szene. Produkte, die virtuelle Räume mehreren Benutzern gleichzeitig zugänglich machen, sind allerdings schon auf dem Markt (Cybergate von Black Sun, CyberPassage von Sony). Des weiteren fehlt ein Binärformat wie etwa das QuickDraw 3D-Metafile-Format von Apple, durch das die Menge an Daten reduziert würde, die über das Netz geschickt werden müssen, wenn eine Szene geladen wird. Gerade in Mehrbenutzerwelten spielt der sogenannte Avatar eine große Rolle. Eine Avatar ist die virtuelle Darstellung des Benutzers. Er befindet sich am Beobachtungspunkt, von dem aus der Benutzer die Szene sieht. Bewegt sich der Benutzer allein durch die Szene, dann dient der Avatar nur dazu, Kollisionen des Benutzers mit Objekten der Welt festzustellen. In einer Mehrbenutzerwelt jedoch legt der Avatar auch fest, wie ein Benutzer von anderen Benutzern gesehen wird. Standards für diese und ähnliche Probleme werden derzeit in Arbeitsgruppen des Ende 1996 gegründeten VRML-Konsortiums ausgearbeitet.

Literatur

  1. San Diego Super Computing Center: The VRML Repository.
    www.sdsc.edu/vrml/. Enthält Verweise auf Tutorials, Spezifikationen, Tools und Browser im WWW
  2. Diehl, S.: Java & Co. Addison-Wesley, Bonn, 1997
  3. Hartman, J.; Wernecke, J.: The VRML 2.0 Handbook – Building Moving Worlds on the Web. Addison-Wesley, 1996
  4. VAG (VRML Architecture Group): The Virtual Reality Modeling Language Specification – Version 2.0, 1996. 
    http://vag.vrml.org/VRML2.0/FINAL/

Autor und Copyright

Stephan Diehl
FB-14 Informatik, 
Universität des Saarlandes, 
Postfach 15 11 50, 
D-66041 Saarbrücken
diehl@cs.uni-sb.de

© 1997 Informatik Spektrum, Springer-Verlag Berlin Heidelberg