eXtensible 3D - X3D

Seminararbeit: XML 3D Formate - X3D und XVL
Prev |  | Next

# Chapter 4. eXtensible 3D - X3D

Um die Nachteile von VRML97 auszuraeumen, hat das Web3D-Konsortium (http://web3d.org/) beschlossen einen Nachfolger zu spezifizieren. Da eine der Vorbedingungen war XML zur Formulierung der Beschreibungssprache zu verwenden entschied man sich dazu entschlossen nicht etwa eine neue Version von VRML sondern ein komplett eigentstaendiges Format zu entwickeln. Schliesslich wurde im August 2001 die DTD eXtensible 3D (X3D) vorgestellt. Aktuell ist Version 3.0, die XSD-Spezifikation hierzu findet man unter http://www.web3d.org/specifications/x3d-3.0.xsd. Durch die Unterstuetzung von XML kann bei dreidimensionalen Szenen der Inhalt der Szene von der Darstellung getrennt und somit mehr Flexibilitaet erreicht werden. Prinzipien wie die Beschreibung einer Szene in Form eines hierarchischen Szenegraphen oder die Methoden der Animation und Interaktion bleiben aus VRML erhalten. Im Unterschied zu VRML ist X3D jedoch modular aufgebaut (vgl. Abbildung 4).

X3D soll alle 3D-Standards auf einen Nenner bringen. Der Standard ist offen, plattformunabhaengig und lizenzgebuehrenfrei. Spezielle Features koennen als Pakete eingebunden werden und muessen nicht von proprietaeren Programmen realisiert werden. Allerdings sind X3D-Dateien noch etwas groeßer als VRML-Dateien. Zudem ist der Standard noch relativ jung und wird erst durch wenige und z.T. nicht ausgereifte Programme genutzt.

Im Folgenden soll versucht werden die Grundzuege des X3D Formates anhand einiger Beispiele etwas genauer zu eroertern. Viele der Codebeispiele hier stammen direkt aus oder wurden wenigstens inspiriert von [3]

# 4.1. Profile

Im Unterschied zur monolithischen Struktur von VRML97 - welche von der Anwendung eine vollstaendige Implementierung aller Features erfordert - erlaubt X3D Entwicklern nur bestimmte Untermengen der Spezifikation, sogenannte Profile, zu unterstuetzen, welche wiederum aus modularen Bloecken von Funktionalitaet - den Komponenten - zusammensetzen.

Diese Komponentenbasierte Architektur erlaubt aber nicht nur die separate Implementierung einzelner Profile, sondern ermoeglicht auch die Neueinfuehrung von Features in die Spezifikation ohne bereits existierende Implementierungen damit auszuschliessen. Deswegen ist X3D ein sehr "lebendiges" Format welches staendig weiterentwickelt wird.

Die Basisprofile von X3D sind:

- Interchange - dieses Profil beschreibt die Grundfuktionalitaet zur Kommunikation zwischen Anwendungen. Es unterstuetzt Geometrie, Texturen, einfaches Lighting und Animation.

- Interactive - ermoeglicht einfache Interaktion mit einer dreidimensionalen Szene indem dem Szenengraphen verschiedenste Sensorknoten zur Navigation und Interaktion, fortgeschrittenes Timing und erweitertes Lighting hinzufuegt.

- Immersive - definiert volle Features fuer 3D Graphik und Interaktion, inklusive Unterstuetzung fuer Audio, Kollissionsabfragen, Nebel und Scripting.

- Full - beinhaltet alle Knotenarten, inklusive NURBS-, H-Anim- und GeoSpatial-Komponenten.

Des weiteren ist es trivial einfach ein VRML97 Profil zu entwerfen, in welchem alle Eigenschaften von VRML97 enthalten sind und welches zusammen mit dem X3D Kern dessen volle Funktionalitaet gewaehrleistet. Damit ist X3D voll abwaertskompatibel und es existieren einige Konverter, die VRML in X3D und umgekehrt umwandeln.

Abb. 4 - die X3D Baseline Profile

Welches Profil eine X3D Datei vorraussetzt steht im <X3D> Knoten, welcher immer das Wurzelelement einer X3D Datei ist. Dieser enthaelt ausserdem noch uebliche Namensraumangaben usw...

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN"   "http://www.web3d.org/specifications/x3d-3.0.dtd">

    <X3D profile='Immersive'
         xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance'
         xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-3.0.xsd'>
    </X3D>

Prev | Home | Next
VRML |  | Kopf, Szene und Navigation