Grundstruktur
Das Grundgerüst hat folgende Form:
<?xml version='1.0' encoding='UTF-8'?>
<X3D profile="Immersive">
<Scene>
...
</Scene>
</X3D>
Zu Beginn wird ein XML-Header definiert, was bei einer Verwendung innerhalb von HTML entfällt.
Das nächste Element leitet X3D-Code ein und definiert dabei noch das benutzte Profil.
X3D-Profile werden für unterschiedliche Anwendungsfälle definiert, mit denen wir uns im Rahmen des Kurses jedoch nicht beschäftigen wollen.
Wer sich mit dem Thema genauer auseinandersetzen will,
kann Genaueres unter http://www.web3d.org/realtime-3d/x3d/profiles nachlesen.
Der Scene-Element schließlich umfasst eine vollständige Landschaft in X3D.
Falls X3D innerhalb von HTML verwendet wird (so wie wir das mittels x3dom tun), kann das X3D-Elemente um Attribute erweitert werden, die die Größe des 3D-Bildes in der Webseite angeben:
<?xml version='1.0' encoding='UTF-8'?>
<X3D width="500px" height="400px" style="background-color:black">
<Scene>
...
</Scene>
</X3D>
Struktur von X3D
Ein einzelnes Objekt einer Szene wird mit einem Shape-Element umfasst. In diesem Element wird das Grundobjekt definiert, sein Aussehen verändert und es können bestimmte weitere Operationen ermöglicht werden. Um das Shape-Element können ein oder mehrere Transform-Elemente gesetzt werden, welche das Objekt beispielsweise versetzen oder drehen. Ein Beispiel dafür:
<X3D width="500px" height="400px" style="background-color:black">
<Scene>
<!-- versetzter Zylinder -->
<Transform translation="2 0 0">
<Shape>
<Appearance>
<Material diffuseColor="1 0 0"/>
</Appearance>
<Cylinder height=".5" radius="0.1"/>
</Shape>
</Transform>
</Scene>
</X3D>
Mit den einzelnen Funktionen des Transform-Elements setzen wir uns später auseinander - an dieser Stelle sei nur gesagt, dass es hier ein Objekt um 2 Einheiten auf der X-Achse versetzt.
Das Shape-Element leitet eine Umgebung ein, in der ein Objekt definiert wird. Dies macht nun das Cylinder-Element - das speziell für Zylinder gebaut ist - dazu Genaueres im nächsten Abschnitt.
Im Appearance-Element wird das Aussehen des Zylinders definiert - hier weisen wir ihm ein reines Rot zu.
Wie generell in der Informatik gilt, dass eine saubere Darstellung praktisch Pflicht ist (Einrückungen, etc.). Schon bei einer recht geringen Anzahl von Objekten kann man sonst schnell den Überblick verlieren.