X3D-Standard: 3D im Internet

13.09.2001 von Dr. Maximilian Eibl
Im August hat das Web3D-Konsortium die Beschreibungssprache X3D für die Darstellung von 3D-Objekten im Internet verabschiedet. Sie basiert auf XML und entspricht einer Modifikation des VRML-Standards.

3D-Anwendungen kommen aus der Spiele- und Kinoecke und entwickeln sich zu ernst zu nehmenden Applikationen. Animierte Chatrooms oder Produktpräsentationen sind wohl die bekanntesten Einsatzgebiete. Die Münchner Firma blaxxun interactive beispielsweise ist auf den Aufbau von Virtual Worlds spezialisiert, die sie als Weiterentwicklung der Virtual Communities sieht. PlanB media entwickelt mit den so genannten Imigos interaktive Charaktere, die beispielsweise als Nachrichtensprecher, Moderatoren oder Führer im Internet fungieren.

In der Forschung haben sich virtuelle Modelle inzwischen aus Kostengründen etabliert. Sie ersetzen etwa in der Automobil-Industrie bereits weitgehend Crashtests an realen Modellen. Schließlich werden 3D-Modelle in der Lehre immer beliebter, vor allem, wenn es um die Darstellung von Strukturen geht, deren natürliche Originale nur schwer zugänglich sind.

Ein klassischer Anwendungsfall ist die Anatomie. Hier findet sich im Internet mittlerweile eine breite Palette von 3D-Modellen. Sie reicht von der gemeinen Stubenfliege Drosophila bis hin zum menschlichen Körper, den die National Library of Medicine in den USA im Rahmen des Visible Human Projects auf der Basis eines realen Körpers als Modell nachgebaut hat.

Technische Grundlage: VRML

Als standardisierte Grundlage für den Aufbau dreidimensionaler Welten hat sich seit Mitte der 90er Jahre die "Virtual Reality Markup Language" (VRML, sprich "Wörmel") etabliert. Es handelt sich dabei nicht um eine Programmiersprache wie etwa Java3D, sondern um eine reine Beschreibungssprache zur Modellierung dreidimensionaler Objekte und Szenen.

VRML basiert ursprünglich auf dem von Silicon Graphics entwickelten 3D-Standard "Open Inventor". Dieser wurde 1995 als VRML 1.0 übernommen und um die Funktion der Verlinkung bereichert. VRML 1.0 mangelte es jedoch an einigen elementaren Möglichkeiten, wie beispielsweise bei der Beschreibung physischer Eigenschaften von Objekten. Ferner fehlten Funktionen der Animation, Interaktion, Multimedia sowie der prozeduralen Programmierung.

Als Antwort auf diese Mängel entwickelten Sony und Silicon Graphics das Konzept der "Moving Worlds", das sich 1996 in einer Internet-Abstimmung unter insgesamt sechs konkurrierenden Industrievorschlägen als neuer Standard VRML 2.0 durchsetzte. Im September 1997 wurde VRML 2.0 nach einigen kleineren Änderungen als VRML97 durch die International Standards Organization (ISO) als Industriestandard ISO/IEC 14772 festgesetzt.

X3D stellt eine weitere Modifikation dieses Standards dar. Grundlegende Prinzipien wie die Beschreibung einer Szene als hierarchischer Szenegraph, der aus verschiedenen Knoten besteht, oder die Methoden der Animation und Interaktion bleiben dabei erhalten. X3D ist im Unterschied zu VRML modular aufgebaut und nutzt XML als Beschreibungssprache.

Szenegraph und Knotenkonzept

Mit Hilfe von VRML lassen sich dreidimensionale Szenen beschreiben. Dies erfolgt mittels einer Baumhierarchie, die Szenegraph genannt wird. Die Blätter des Hierarchiebaumes sind die Gestaltknoten der Szene und damit deren sichtbare Objekte. Ein Gestaltknoten verbindet eine Geometrische Form (geometry) mit einer Erscheinung dieser Form (appearance).

#VRML V2.0 utf8
Shape {
geometry Sphere { }
}

Die erste Zeile ist der Header und gibt an, dass es sich hier um eine VRML-Datei handelt. In der zweiten Zeile wird ein Gestaltknoten definiert. Dieser besteht in der Regel aus einer Erscheinung und einer Geometrischen Form. Hier wird für die Erscheinung ein Defaultwert angenommen und als geometrische Form eine Kugel festgelegt.

Die Äste und Zweige des Hierarchiebaums sind Knoten, die Transformationen wie Verschieben oder Drehen auf die Objekte anwenden oder Abhängigkeiten wie Gruppierungen zwischen Objekten definieren. Im folgenden Bild wird ein Gruppierungsknoten dazu verwendet, eine Kugel mit einem Kegel zu verknüpfen. Beide Formen nehmen in ihrer Erscheinung die Defaultwerte an.

Das Koordinatensystem des Wurzelknotens fungiert als absolutes Weltkoordinatensystem. Über Transformationen kann man aber das lokale Koordinatensystem eines jeden Knotens verändern. Die jeweils untergeordneten Knoten nutzen dann ebenfalls dieses neue Koordinatensystem.

Bewegung und Dynamik

Seit VRML 2.0 kann man Welten dynamisch gestalten. Um Animation und Interaktion zu ermöglichen, wurden zwei neue Knoten geschaffen: Sensoren und Interpolatoren. Sensoren reagieren auf Mausoperationen, Bewegungen des Beobachters oder Bewegungen von Objekten. So lässt sich über einen eigenen Sensor ermitteln, ob ein bestimmtes Objekt mit der Maus angeklickt und ein entsprechendes Ereignis gestartet wurde.

Interpolatoren dienen der Animation von Objekten. Beim Aufbau einer 3D-Welt sind für animierte Objekte nur noch Schlüsselwerte bezüglich Position, Orientierung oder etwa Größe eines Objekts anzugeben. Die Interpolatoren berechnen zeitgesteuert die notwendigen Zwischenwerte selbst.

Die Verbindung zwischen Sensoren beziehungsweise Interpolatoren und den Objektknoten bilden so genannte Routen. Sie stellen eine Art Verdrahtung her, über die der Versand von Nachrichten erfolgt.

Auszeichnung von Objekten mit XML

XML (Extensible Markup Language) ist eine Konvention zur semantischen Auszeichnung von Texten. Sie entspricht einer für das Internet optimierten Untermenge des aus dem Buchdruck kommenden SGML (Standard Generalized Markup Language). Hauptpunkt von Auszeichnungssprachen ist die strikte Trennung von Inhalt und Form. Der Inhalt wird durch die Elemente der Auszeichnungssprachen definiert, die Form durch die Stilsprache. Näheres zu XML lesen Sie hier.

Auszeichnungssprachen definieren allein die Semantik von Texten. Über die Darstellung der ausgezeichneten Elemente sagen sie nichts aus. Hierzu benötigt man so genannte Stylesheets wie CSS (Cascading Stylesheets) oder XSL (Extensible Style Language), die die Erscheinung der Elemente festlegen.

Die DTD (Document Type Definition) beschreibt die für einen bestimmten Dokumenttyp zulässigen Elemente. In der HTML-DTD beispielsweise sind alle Elemente wie <H1>, <P>, <IMG>, etc. spezifiziert. Elemente, die in der DTD nicht definiert sind, dürfen auch nicht verwendet werden. Eine DTD kann sowohl intern in einem XML-Dokument als auch wie bei HTML extern festgelegt werden.

Letztendlich ist die Definition einer DTD in XML allerdings optional. Für den alltäglichen Gebrauch kann man darauf verzichten. Größere Projekte jedoch laufen schnell aus dem Ruder, wenn eine DTD-Übersicht über die definierten Elemente und Strukturen fehlt.

Anwendung von XML für 3D-Objekte: X3D

Das Konzept von XML bietet drei Vorteile: Erstens die strikte Trennung von Inhalt und Aussehen, zweitens lassen sich mit XML die verschiedensten Elemente beschreiben. Es bedarf lediglich einer entsprechenden Formulierung der DTD. Drittens kann man den Sprachumfang durch eine entsprechende Erweiterung der DTD jederzeit ausbauen. Es lag nahe, diese Vorteile auch für ein weiterentwickeltes VRML zu nutzen.

VRML gilt mittlerweile als überholt. Um möglichst alle Aspekte der dreidimensionalen Darstellung im Internet umfassend zu berücksichtigen, erweiterte sich das VRML-Konsortium 1998 zum Web3D-Konsortium. Dieses verkündete im Februar 1999 die Einführung von XML zur Formulierung einer Beschreibungssprache. Ergebnis dieser Bemühungen ist die DTD eXtensible 3D (X3D), die im August auf der SIGGRAPH in Los Angeles vorgestellt wurde.

X3D ist modular konzipiert und besteht aus verschiedenen Komponenten:

Da führende 3D-Firmen wie blaxxun interactive, nexternet, OpenWorlds, ParallelGraphics das Konsortium unterstützen, bestehen gute Chancen für die Realisierung dieses Standards. Zusätzlich arbeitet die Open Source Code Group des Web3D-Konsortiums momentan an dem X3D-Browser Xj3D.

Erweiterbarkeit

X3D lässt sich nahezu unbegrenzt erweitern. Um den Kern X3D-1, der nur die notwendigsten Spezifikationen enthält, werden weitere Profile angelegt, die auf die speziellen Bedürfnisse der einzelnen Anwender eingehen. So wird etwa ein Biologe ganz andere Anforderungen an eine dreidimensionale Darstellung haben als ein Geograph.

Die Erweiterbarkeit von X3D hat in der Praxis Auswirkungen in zwei Richtungen. Zum einen muss für die Codierung eines X3D-Browsers nicht die komplette Spezifikation berücksichtigt werden. Das heißt: Für spezielle X3D-Anwendungen kann man auch spezielle Browser konzipieren, die in Größe und Laufzeitverhalten für den entsprechenden Anwendungsfall optimiert sind.

Zum anderen sind die Hauptkomponenten jederzeit durch beliebige Module zu ergänzen. Erweiterungen liegen a priori in der Zielsetzung der Spezifikation und sind nicht wie bei VRML97 proprietär. Neue Anwendungen lassen sich damit in die X3D-Spezifikation aufnehmen, ohne mit den bereits existierenden Modulen in Konflikt zu geraten.

Solche Erweiterungen werden seit einiger Zeit von den Arbeitsgruppen des Web3D-Konsortiums spezifiziert. Eine bereits zu VRML erstellte Erweiterung ist beispielsweise GeoVRML. Hier definiert die GeoVRML Working Group neue Knoten, die speziell auf Geodaten-Visualisierung zugeschnitten sind. Die Humanoid Animation Working Group beschäftigt sich mit der Darstellung virtueller Personen. Sie spezifiziert sowohl die Erscheinung als auch die Animation der Figuren von einfachen Bewegungen bis hin zum lippensynchronen Sprechen.

Editieren mit X3D-Edit

Der augenfälligste Unterschied zwischen X3D und VRML97 liegt in der Syntax und lässt sich am Beispiel einer einfachen Kugel erklären. Wir codieren sie zunächst in X3D und konvertieren diese X3D-Beschreibung anschließend in VRML. Zur Definition der Kugel in X3D eignet sich der Editor X3D-Edit, den das Web3D-Konsortium kostenlos zur Verfügung stellt. Damit der Editor funktioniert, müssen sowohl Java als auch der XML-Parser Xeena von IBM installiert sein. Das Web3D-Konsortium bietet beide Komponenten inklusive einer Installationsanweisung auf seinen Webseiten an.

Die Abbildung zeigt den editierbaren Szenegraphen, die graphische Darstellung des eigentlichen Quellcodes. In dieser Ansicht unterscheidet sich X3D rein äußerlich kaum von VRML97. Neu sind einige typische XML-Eigenschaften wie etwa die eingebundene DTD (Document Type Definition). Der zugrunde liegende Quellcode sieht wie folgt aus:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "http://www.web3D.org/TaskGroups/x3d/ translation/x3d-compact.dtd"
"file:///C:/www.web3D.org/TaskGroups/ x3d/translation/x3d-compact.dtd">
<X3D>
<head>
<meta
content="X3D-Edit, http://www.web3D.org/TaskGroups/x3d/ translation/README.X3D-Edit.html"
name="generator"/>
</head>
<Scene>
<Shape>
<Appearance>
<Material diffuseColor="0.8 0.0 0.2"/>
</Appearance>
<Sphere radius="2"/>
</Shape>
</Scene>
</X3D>

Der Aufbau des Codes ist naturgemäß stark XML-geprägt. Die Datei beginnt mit dem üblichen Vorspann, der die DTD einbindet und Version und Sprache festlegt. Anschließend folgt der Head der Beschreibung. Wie bei HTML erfolgen hier in der Regel Meta-Angaben über den Inhalt der Beschreibung. Zwischen den &lt;scene&gt;-Tags beginnt die Beschreibung der eigentlichen Szene. Von VRML97 unterscheidet sich dieser Teil vor allem durch die Syntax. Die Bezeichner sind jedoch gleich. Dies wird bei der im Folgenden beschriebenen Konvertierung zu VRML97 deutlich.

X3D: Konvertieren zu VRML97

Da die meisten Browser-Plugins X3D-Dateien noch nicht verarbeiten können, empfiehlt es sich derzeit noch, diese in herkömmliches VRML97 zu konvertieren, um einen breiteren Kreis von Anwendern zu erreichen. Mit dem Editor X3D-Edit ist dies kein allzu großes Problem.

Da X3D in XML codiert wird, fällt die Konvertierung mittels eines XSL-Stylesheets in andere Formate leicht. Das Web3D-Konsortium legt das entsprechende Stylesheet "X3dToVrml97.xsl" dem X3D-Edit bei. Der folgende Code zeigt die VRML97-Version des oben beschriebenen Kugel-Beispiels.

#VRML V2.0 utf8
Shape {
appearance Appearance {
material Material {
diffuseColor 0.8 0.0 0.2
}
}
geometry Sphere {
radius 2
}
}

Der Unterschied liegt allein in der Syntax der Codierung. Auf den ersten Blick scheint diese in VRML97 einfacher als in X3D. X3D erfordert zusätzlich zu den eigentlichen beschreibenden Elementen noch die in XML üblichen einleitenden Angaben. Und selbst die eigentlichen Angaben zu der dargestellten Kugel scheinen in VRML97 einfacher zu lesen.

Inwieweit dies in der Praxis zu Problemen führt oder ob Anwender nicht doch lieber den fast identischen Szenegraphen verwenden, sei dahingestellt. Tatsächlich ist jedoch die XML-Notation weiter verbreitet, während die VRML-Notation nur der eingeweihten VRML-Gemeinde schlüssig ist.

Dies hat neben der allgemein besseren Lesbarkeit auch zur Folge, dass viele Tools, die eigentlich für XML konzipiert wurden, auch problemlos mit X3D arbeiten. Ein Beispiel ist der Xeena XML-Parser, der dem hier beschriebenen X3D-Editor zu Grunde liegt.

Konkurrierende Standards

Das Web3D-Konsortium hofft, auf Grund der modularen Struktur von X3D einen einheitlichen Standard schaffen zu können. Zu VRML haben sich mittlerweile verschiedene Konkurrenzstandards entwickelt. Sie fokussieren jeweils spezielle Aspekte von 3D-Anwendungen wie Geschwindigkeit, Darstellung, Übertragung im Internet oder Animation. Die meisten von ihnen bieten zumindest eine Exportmöglichkeit zu VRML.

Anfy3D ist ein proprietäres Format, das vom Anfy 3D Java Applet gelesen werden kann. Cult3D ist ein interaktiver 3D-Betrachter für viele verschiedene Plattformen, der vergleichsweise schnell auf Rechnern ohne Hardwarebeschleunigung läuft. Pulse3D ist auf komplexe 3D-Animationen spezialisiert. Shout3D wiederum ist ein Betrachter, der mit einer Untermenge des VRML-Standards operiert und so kurze Ladezeiten ermöglicht.

Ausblick

X3D soll alle 3D-Standards auf einen Nenner bringen. Der Sprachumfang von VRML97 war für einzelne Anwendungen zu mächtig, für andere wiederum zu klein. X3D stellt die erforderliche Flexibilität her, die für die Verwendung in verschiedensten Bereichen notwendig ist.

Im August wurde X3D vom Konsortium verabschiedet und auf der SIGGRAPH in Los Angeles vorgestellt. Eine Einreichung bei der International Standards Organization (ISO) steht noch aus. Erste Anwendungen werden wahrscheinlich bis Ende des Jahres erscheinen. X3D hat dabei gute Chancen, sich als Standard auch in der Praxis durchzusetzen, da zahlreiche namhafte Firmen der 3D-Branche im Konsortium mitwirken. (jma)

Über den Autor:

Maximilian Eibl promovierte im Jahr 2000 als weltweit zweiter Wissenschaftler im Fach Computervisualistik. Zur Zeit koordiniert er den Internet-Auftritt der Gesellschaft Sozialwissenschaftlicher Infrastruktureinrichtungen und nimmt Lehraufträge an den Universitäten Hildesheim und Koblenz-Landau wahr.