David Lee, Teri Day, Mirco Zehnder, FHW 31

Einfache Szene in einer X3D Datei

In diesem Beispiel werden sieben Objekte verwendet, die aus den drei folgenden 3D-Grundformen bestehen Dieses Beispiel richtet sich nach dem Tutorial "Basic 3D Geometry" (Pinecoast Software):

Strassenlaterne in X3D
Abb. 12: Stassenlaterne in X3D (Pinecoast Software)

Aus diesen einfachen Hilfsmitteln kann nun eine Strassenlampe erstellt werden. Der Fuss der Lampe lässt sich aus einem Zylinder mit Radius 0.5 und Höhe 0.1 formen. Die X3D Anweisung sieht folgendermassen aus:


<Transform>
  <Shape>
    <Appearance>
      <Material diffuseColor="0 1 0"/>
    </Appearance>
    <Cylinder height="0.1" radius="0.5"/>
  </Shape>
</Transform>

Der "Material"-Knoten definiert die Farbe im RGB-Format mit Werten zwischen 0 und 1. In diesem Fall wird also der Sockel grün.

Die Stange der Strassenlampe kann ebenfalls als Zylinder dargestellt werden, mit Radius 0.1 und Höhe 2. Der "Transform"-Knoten erhält eine Positionierungsanweisung "translation" im Format "x y z", um den zweiten Zylinder auf den Sockel zu stellen. In X3D bezieht sich die y-Achse auf die vertikale Achse.


<Transform translation="0 1 0">
  <Shape>
    <Appearance>
      <Material diffuseColor="0 1 0"/>
    </Appearance>
    <Cylinder height="2.0" radius="0.1"/>
  </Shape>
</Transform>

Für den Lampenschirm können zwei weitere Zylinder und ein Kegel verwendet werden, die nach ähnlichem Rezept aufgebaut werden.

Für die Glasabdeckung wird auch ein Kegel verwendet, jedoch um 180 Grad um die z-Achse gedreht - also auf dem Kopf. Die z-Achse zeigt zum Betrachter, und alle Winkel werden in Bogenmass angegeben. Um den Anschein von Glas zu erwecken, wird die Farbe weiss verwendet und das Material teilweise transparent gemacht.


<Transform rotation="0 0 1 3.14159" translation="0 2.4 0">
  <Shape>
    <Appearance>
      <Material diffuseColor="1 1 1" transparency="0.2"/>
    </Appearance>
    <Cone height="0.5" bottomRadius="0.4"/>
  </Shape>
</Transform>

Für die Glühbirne wird eine weisse Kugel verwendet und in der Glasabdeckung platziert.


<Transform translation="0 2.375 0">
  <Shape>
    <Appearance>
      <Material diffuseColor="1 1 0.502" />
    </Appearance>
    <Sphere radius="0.1"/>
  </Shape>
</Transform>