VRML
Virtual Reality Modeling Language

von Karin Takacs (Ausgabe 98/1, Februar 1998)

 

Der Funktionsumfang des WWW wird laufend erweitert. Waren zu Beginn nur statisch aufgebaute Seiten und CGI-Scripts realisierbar, so gibt es heute eine ganze Reihe von Technologien zur Erweiterung des Möglichen: Java, ActiveX-Scripts usw. Im Bereich der dreidimensionalen Darstellung von Objekten ist derzeit VRML (Virtual Reality Modeling Language) die am weitesten verbreitete Sprache.

Die Virtual Reality Modeling Language ist eine Beschreibungssprache zur Darstellung und Definition von dreidimensionalen Objekten. VRML 1.0 wurde auf der Basis des Open Inventor-Formats von Silicon Graphics entwickelt, das eine vollständige Beschreibung von polygonalen, dreidimensionalen Welten inklusive Oberflächendefinition und Beleuchtung ermöglicht. Im Herbst 1996 wurde ein neuer Standard (VRML 2) festgelegt, mit dem komplizierte Animation, Interaktion und das Verhalten von Objekten realisiert werden können.

VRML-Dateien sind leicht an der Extension .wrl zu erkennen. Kleinere VRML-Dateien können mit den meisten handelsüblichen PCs betrachtet werden. Zur Besichtigung und Modellierung komplexerer Welten - besonders um ein "ruckfreies" Navigieren zu ermöglichen - benötigt man meist etwas leistungsstärkere Rechner. Das Navigieren ist ein wenig gewöhnungsbedürftig; man kann jedoch bereits bei der Modellierung darauf achten, einen möglichst hohen Benutzerkomfort zu gewährleisten.

Der vorliegende Artikel soll einen Einblick in die Virtual Reality Modeling Language geben, dient aber keineswegs als vollständige Einführung. Nach einer Darstellung von einfachen Objekten und einer Kurzbeschreibung der wichtigsten Eigenschaften von VRML folgt eine Auflistung der wichtigsten handelsüblichen VRML-Browser und -Plugins sowie eine kleine Linksammlung für jene, die sich auf diesem Gebiet weiter informieren wollen.

Was kann VRML?

Geometrische Festlegung dreidimensionaler Objekte

Bei der Modellierung stehen einerseits geometrische Primitive (wie Quader, Kugel, Kegel und Zylinder) zur Verfügung, andererseits Punkte, Linien und Polygonflächen. Objekte können durch Transformation (Verschiebung, Skalierung und Rotation) entlang der x/y/z-Koordinaten positioniert werden. Durch das Zusammensetzen mehrerer Objekte kann man komplexe Strukturen bzw. Welten erzeugen. Die Abbildung zeigt Beispiele für einfache Objekte; darunter finden Sie den Programmcode zur Erzeugung des in dieser Abbildung links unten dargestellten beleuchteten Würfels.

Abb. 1: Beispiele für einfache Objekte

Verwendung von Text

Text kann als zweidimensionales Objekt in die dreidimensionale Welt inkludiert werden.

Festlegen der Materialeigenschaften

Die Farbe wird durch ihre RGB-Werte definiert, wobei einem Objekt nicht nur Farben, sondern auch Farbverläufe zugeordnet werden können. Reflexionseigenschaften können durch verschiedene Modelle (ambient, diffuse, specular, emissive) erzeugt werden; Oberflächen- und Materialeigenschaften wie Glanz oder Durchsichtigkeit werden ebenfalls unterstützt. Weiters ist es möglich, Oberflächen mit Texturen (2D-Bilder im .jpeg- oder .gif-Format, aber auch .mpeg-Movies) zu belegen.

Blickpunkte

Besonders interessante Perspektiven werden durch Festlegung von Blickpunkten (?viewpoints") definiert; außerdem wird dem Benutzer dadurch das Navigieren durch die Welt erleichtert. Durch Verknüpfen dieser Blickpunkte wird eine ?viewpointed-tour" generiert.

Beleuchtung

Es bestehen verschiedene Beleuchtungsmöglichkeiten, wie zum Beispiel gleichförmig gerichtetes Licht, radial von einem Punkt ausgehendes Licht oder Spotlight (=Lichtkegel).

Feinheiten

Durch die Festlegung eines Hintergrundbildes - dieses erscheint unabhängig vom gegenwärtigen Standpunkt in weiter Distanz - kann man die Welt realistischer erscheinen lassen. Zur Vermeidung von Berührungen oder ungewollten Verschmelzungen von Objekten bedient man sich der Kollisionskontrolle. Weiters ist es möglich, in Audiodateien gespeicherten Sound als Hintergrundmusik erklingen zu lassen.

Laufzeitverhalten

Die umfangreichen Datenmengen verbrauchen sowohl beim Herunterladen als auch bei der Darstellung reichlich (Rechen-)Zeit. Um für den Benutzer möglichst kurze Wartezeiten und kontinuierliche Bildfolgen zu gewährleisten, gibt es neben der trivialen Lösung (= schnellerer Rechner) verschiedene Ansätze.

  • Weiter entfernte Objekte mit einer geringeren Auflösung darstellen (Level of Detail - LOD): Für ein Objekt werden verschiedene Ansichten generiert, die abhängig von der Entfernung zum Betrachter ausgewählt werden. Nicht benötigte Ansichten können zu einem späteren Zeitpunkt nachgeladen werden.
  • Mehrfachverwendung von Objekten (DEF & USE und PROTO): Objekte werden nur einmal definiert - entweder innerhalb der Datei (DEF) oder in einer externen Datei (PROTO) - und können dann mittels Referenzen beliebig oft wiederverwendet werden.
  • Räumliche Unterteilung: Die "Welt" wird in Regionen unterteilt, die nicht alle gleichzeitig sichtbar sind. Zu einem bestimmten Zeitpunkt ist immer nur eine kleine Anzahl davon aktiv, was sich in einer geringeren Rechenzeit für die Darstellung niederschlägt.

Dynamik

Neben vorgegebenen Perspektiven und "viewpointed-tours" können dem Benutzer weitere Aktivitäten angeboten werden:

  • Die Verknüpfung von Objekten mit Hyperlinks bietet auf einfache Weise Zugang zu anderen WWW-Doku-menten oder VRML-Dateien.
  • Bewegungen und Veränderungen von Objekten können durch Benutzereingaben oder Sensoren gesteuert werden. Für komplizierte Modelle (z.B. Tür öffnen, Aufzug fahren, Tänzer, Fernsehen, Tischtennis, Geräusche in Abhängigkeit zur Entfernung der Lärmquelle) kann die Steuerung auch über Scriptsprachen erfolgen.
  • VRML-Welten können durch die Verwendung von Scripts automatisch generiert werden. Der Benutzer gibt etwa über ein Java-Applet Werte wie z.B. Abmessungen verschiedener Objekte ein, die als Parameter zur Erzeugung einer Welt dienen (VRML on the fly, siehe Pkt. Java programs unter http://www.vt.edu:10021/B/bwn/).
  • Es besteht auch die Möglichkeit, sich in Mehrbenutzerwelten aufzuhalten. Hier können Menschen von verschiedenen Rechnern aus miteinander kommunizieren und interagieren. Die verbale Kommunikation wird durch Textchat simuliert. Jeder Benutzer kreiert oder wählt eine vordefinierte Figur ("avatar", siehe Beispiele rechts), mit der er sich in dieser Welt bewegt (z.B. Multiuser Community von Blacksun, URL http://www.blacksun.com/).

VRML-Wiedergabe

Zur Betrachtung von VRML-Dateien bedient man sich externer Viewer oder Plugins. Externe Viewer sind sogenannte "stand-alone"-VRML-Browser; bei Plugins handelt es sich um Erweiterungen eines HTML-Browsers (siehe Comment 97/3). Eine Auflistung der wichtigsten handelsüblichen VRML-Viewer und -Plugins entnehmen Sie bitte der Tabelle.

Produkt

Typ

Hersteller

Betriebssystem

Community Place

Ext. Viewer

Sony

Windows 95/Windows NT

GLView

Ext. Viewer

Holger Grahn

Windows 95/Windows NT

Community Place

Plugin

Sony

Windows 95/Windows NT

Cosmo Player

Plugin

SGI

Windows 95/Windows NT, Irix

RealVR Traveler

Plugin

RealSpace, Inc.

Windows 95/Windows NT, Mac

World View

Plugin

DimensionX

Windows 95/Windows NT, Mac, Solaris, Linux

 

Mit allen Browsern kann man grundsätzlich dieselben Funktionen ausführen: Einerseits kann man sich mit oder ohne Schwerkraft im Raum bewegen, sich durch Anklicken von Gegenständen ihnen nähern, Objekte rotieren lassen oder zwischen "viewpoints" wechseln. Eine detailli erte Beschreibung bietet die jeweilige Anleitung.

Um tiefer in die Materie einzudringen, bedienen Sie sich bitte der folgenden Links. Viel Spaß!

Nützliche und amüsante Links