Definition von Objekten:
Grundsätzlich wird ein Objekt mit dem Schlüsselwort "object" eingeleitet. Jedoch nur wenn das Skript Abwärtskompatibel zu älteren POVRAY Versionen sein soll ist dieses erforderlich. Seit POVRAY 3.0 ist dies nicht mehr zwingend notwendig. Es gibt aber dennoch Gründe wo es eingesetzt werden muß. Ein Grund wäre die Anzeige eines "CSG". Hier wird ein Objekt mit dem Befehl #declare definiert, und später unter seinem Namen mit dem Syntax object { name texture { ... } } dargestellt. Nachfolgendes Beispiel zeigt den vollständigen Syntax zur Beschreibung eines Objektes. Nicht alle Schlüsselwörter die hier verwendet werden sind notwendig. Benötigt man z.B. keine Oberflächeneffekte oder keine Rotation, so läßt man die entsprechenden Teile einfach weg.
object {
sphere { <0,0,0>,2
texture {
pigment { ... }
finish { ... }
scale <x,y,z>
rotate <x,y,z>
translate <x,y,z>
}
}
}
Wie schon erwähnt kann ab Version 3.0 das Schlüsselwort "object {}" weggelassen werden. Das Objekt (hier eine Kugel, es könnte auch jedes andere sein) "sphere {}" umschließt mit seinen geschweiften Klammern den gesamten Definitionsteil.
Als nächstes wird die Form des Objektes definiert. Da es sich in diesem Beispiel um eine Kugel handelt, wird nun der Mittelpunkt und der Radius angegeben. Die Kugel im Beispiel befindet sich im Nullpunkt "<0,0,0>" und hat den Radius "2".
Als nächstes wird die Oberfläche des Objektes erzeugt. Das Schlüsselwort "texture" umschließt den Teil der die Oberfläche definiert. Hier könnte jetzt auch eine vorher definierte Textur (z.B. aus einem inclide-file) Verwendung finden. Das Wort "pigment" gibt die Farbe der Oberfläche an. Im Teil "finish" wird die Beschaffenheit der Oberfläche erzeugt. So kann hier z.B. ein Glanzeffekt erzeugt werden.
Im Teil "texture" können nicht nur einfarbige Objekte erzeugt werden. Durch die Möglichkeit Farben zu verwirbeln oder gar Bilder auf die Oberfläche zu projizieren gibt es eine enorme Menge an Möglichkeiten.
Im nächsten Schritt wird die Größe verändert. Dies ist nicht redundant, da die Angabe des Radius im Objektteil nur auf alle Koordinaten gleichmäßig wirkt. Mit dem Wort "scale" kann ein Objekt nun in x,y und z Richtung verschieden gezerrt oder gezoomt werden. Rotate rotiert das Objekt um die jeweiligen Achsen. So würde "rotate <20,40,0>" eine Rotation um 20 grad um de X-Aches und um 40 grad um die Y-Achse bedeuten. Um die Z-Achse wird das Objekt nicht rotiert. Zu beachten ist, das ohne Vorzeichen (also+) die Rotation in der positiven Richtung erfolgt.
Das nun so gefärbte, verschönerte, gezerrte und rotierte Objekt wird nun im letzten Schritt noch an sein endgültige Position im Raum gebracht. Mit "translate" wird es nun um die entsprechenden Werte für x,y und z verschoben.
Damit ist das Objekt vollständig definiert.