David Lee, Teri Day, Mirco Zehnder, FHW 31

Material- und Bildtexturen

Materialtexturen

Die folgenden Beispiele sollen den Einsatz von Texturen in X3D erklären.

Ein Objekt im dreidimensionalen Raum sollte auch ein definiertes Aussehen für dessen Oberfläche haben. Fehlt dies, so bleibt es dem Anzeigeprogramm überlassen, wie es das Objekt anzeigen will. Meistens wird hier ein reines Weiss oder Schwarz benutzt.

Objekt ohne Aussehen
Abb. 6: Objekt ohne Aussehen
Objekt mit Grundfarbe
Abb. 7: Objekt mit Grundfarbe

Das Aussehen eines Objektes kann über eine Materialtextur definiert werden. Alleine schon das hinzufügen einer Textur erlaubt es dem Anzeigeprogramm Schattierungen auf dem Objekt anzuzeigen, da dies besagt, dass sich nun eine Oberfläche auf dem Objekt befindet, die Licht aufnehmen kann. Hierfür wird dem "Shape"-Knoten, welches das Objekt definiert, ein Knoten namens "Appearance" hinzugefügt, welches das Aussehen definiert.

Im "Appearance"-Knoten kann mit dem Kindelement "Material" eingefügt werden, um das Aussehen zu bestimmen. Der "Material"-Knoten unterstützt das Attribut "diffuseColor", welches erlaubt eine Grundfarbe für das Aussehen zu definieren. Die Farbe lässt sich durch eine Kombination der drei Grundfarben rot, grün und blau (RGB) definieren, mit Werten zwischen 0 und 1. Im folgenden Beispiel 0.9 rot, 0.1 grün, 0.3 blau.

Beispielcode:


<Transform>
  <Shape DEF='Box01_SHAPE'>
    <Appearance>
      <Material diffuseColor='0.9 0.1 0.3' />
    </Appearance>
...

Bildtexturen

Als Alternative zu definierten Materialen, lassen sich auch Bilder für Texturen nehmen. Im folgenden Beispiel wird ein Satelitenbild der Erde um einen Quader gelegt. Anstelle des "Material"-Knotens wird der "ImageTextur"-Knoten eingesetzt. In diesem Knoten wird mit dem Attribut "url" wird die Speicheradresse des Bildes angegeben, welches verwendet werden soll.

Bildtextur
Abb. 8: Bildtextur (Celestia Motherlode)
Quader mit Bildtextur
Abb. 9: Quader mit Bildtextur

Beispielcode:


<Transform>
  <Shape DEF='Box01_SHAPE'>
    <Appearance>
      <ImageTexture url='EarthMap.jpg' />
    </Appearance>
...