05.08.2013 Aufrufe

Proseminar Computergrafik: Retained Mode: Open Inventor, VRML ...

Proseminar Computergrafik: Retained Mode: Open Inventor, VRML ...

Proseminar Computergrafik: Retained Mode: Open Inventor, VRML ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

2.4 Knoten und Felder<br />

Knoten beschreiben in <strong>VRML</strong> die 3D-Objekte, wobei sich die Knoten in Gruppenknoten oder Blattknoten<br />

unterteilen lassen. Erstere können wiederum Gruppenknoten oder Blattknoten als Kinder in<br />

beliebiger Anzahl enthalten. Blattknoten können zwar keine Kinderknoten aber untergeordnete Knoten<br />

besitzen, zu denen Knoten wie Materialeigenschaft oder die geometrischen Knoten gehören. So wäre<br />

ein Knoten für einen Quader vom Typ „Box“, und seine Knoten für Oberflächeneigenschaft vom Typ<br />

Material. Die untergeordneten Knoten können nicht als eigenständige Blattknoten verwendet werden.<br />

Ein Knoten besteht aus einem oder mehreren Feldern, die den Zustand des Knotens beschreiben. So<br />

würde einen Knoten, der mit dem Knotentyp „Sphere“ vereinbart wurde, eine Kugel ergeben. Mit dem<br />

folgendem Programmcode entsteht dabei eine Kugel mit dem Radius 2.<br />

Sphere { radius 2 }<br />

Felder werden in geschweifte Klammern eingeschlossen, und im Falle von mehreren Eigenschaften<br />

werden die Felder untereinander geschrieben. Die Feldtypen sind wie in <strong>Open</strong> <strong>Inventor</strong> einfache<br />

Basistypen, zum Beispiel Vektoren, boolesche Werte u.a..<br />

Die Wiederverwendung von Knoten in <strong>Open</strong> <strong>Inventor</strong> ist auch in <strong>VRML</strong> übernommen worden. Um<br />

einen Knoten erneut zu nutzen, muss er mit DEF benannt und an anderer Stelle mit USE und seinem<br />

Namen wieder angesprochen werden. Es wird dabei keine Kopie sondern eine Referenz angelegt.<br />

Im anschließenden Programm wird eine Pyramide beschrieben. Mit diesem relativ einfachen Beispiel<br />

werden die Struktur einer <strong>VRML</strong>-Datei und die Anwendung einiger Knoten deutlich.<br />

#<strong>VRML</strong> V2.0 utf8<br />

Transform { # lokales Koordinatensystem für alle<br />

children [ # Kindknoten<br />

DirectionalLight{}, # Lichtstrahlen parallel und eine Richtung<br />

Shape { # Knoten zur Beschreibung sichtbarer Objekte<br />

geometry IndexedFaceSet { # Knoten um Polygone zu beschreiben<br />

coord Coordinate { # Knoten der Eckpunkte der Polygone enthält<br />

point [<br />

1 0 0 # Punkt 0<br />

0 0 1 # Punkt 1<br />

-1 0 0 # Punkt 3<br />

0 0 -1 # Punkt 4<br />

0 1.5 0 # Punkt 5<br />

]<br />

}<br />

coordIndex [ # Vereinbarung der Polygone,<br />

0,1,2,3,0,-1, # Grundfläche<br />

1,0,4,1,-1, # Seite aus Punkt 1, Punkt 0 usw.<br />

2,1,4,2,-1, # Seite, Wert -1 trennt die einzelnen Polygone<br />

3,2,4,3,-1, # Seite<br />

0,3,4,0,-1 # Seite<br />

]<br />

}<br />

appearance Appearance { # Knoten beschreibt das Aussehen<br />

material Material { # Knoten für Materialeigenschaft (Werte 0-1)<br />

diffuseColor 0.1 0.1 0.1 # Farbe in RGB für Reflexion, helles grau<br />

shininess 0.6 # Glanzwert<br />

specularColor 0.8 0.8 0.8 # Reflexionskoeffizient für Spiegelung<br />

transparency 0.5 # Transmissionskoeffizient für Transparenz<br />

}}}]}<br />

Background { # Knoten für Hintergrundeigenschaften<br />

skyColor [ 1 1 1 ] # Farbe des Himmels in RGB. weiß<br />

}<br />

09

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!