Raytracing mit POVRAY


Autor: J. Anders

Was ist Raytracing?

Raytracing: Erzeugung fotorealistischer 3-D-Welten auf der Grundlage einer formalen Beschreibung.

Was ist POVRAY ?

POVRAY ( Persistence of Vision Raytracer) ist ein Public - Domain - Raytracer. Informationen zu POVRAY sind von der POVRAY - Homepage zu bekommen. POVRAY basiert auf einem Original-Raytracer von David Buck und wurde ständig weiterentwickelt.

Zur Zeit existieren 3 Versionen, von denen die mittlere Version (2.2) letzte Version (3.0) die derzeit gebräuchliche ist.

Leider beschreibt dieser Text lediglich die Möglichkeiten von POVRAY 2.x. Da aber POVRAY 3.x (von ein paar Kleinigkeiten abgesehen) eine Obermenge von POVRAY 2.x ist, ist der Text im wesentlichen auch für POVRAY 3.x gültig.

Für welche Plattformen gibt es POVRAY ?

... für alle einschließlich MS-DOS/ MS-WINDOWS! Außerdem sind die C-Quellen offengelegt, so daß eine Anpassung an jede Plattform ohne weiteres möglich ist.

Woher bekommt man POVRAY ?

  1. Vom offiziellen Public - Domain - Server:ftp.povray.org
  2. (besser) ftp://ftp.fh-rosenheim.de/pub/mirror/ftp.povray.org/povray

Kann man POVRAY-Szenen auch interaktiv erzeugen ?

Es gibt eine Reihe von Szene-Editoren. Von:

ftp.povray.org/povray/modellers

bzw.

ftp://ftp.fh-rosenheim.de/pub/mirror/ftp.povray.org/povray/modellers

ist für MSDOS der "midnight" - Modeller zu empfehlen.

Für SGI, SUN4, Solaris und Linux gibt es den "AC3D":

http://www.comp.lancs.ac.uk/computing/users/andy/ac3dlinux.html

Allerdings nutzt keiner der Szene-Editoren die Möglichkeiten von POVRAY wirklich aus.

Aufruf von POVRAY

povray +Ieingabe.pov +Oausgabe.tga +L../include +FT +W640 +H480 +V

eingabe.pov - Eingabefile im POVRAY-Format
ausgabe.tga - Erzeugtes Bild im sog. TARGA- Fileformat
../include - Include - Directory für Standardfiles
+FT - "Erzeuge TARGA-File"
+W640 - Breite = 640 Punkte
+H480 - Höhe = 480 Punkte
+V - Verbose - Mode

Die Bilder werden im TARGA-Fileformat erzeugt, welches sich zum Beispiel mit den Werkzeugen aus dem ImageMagick- Paket betrachten (display) und in beliebige andere Fileformate umwandeln (convert) läßt.

Das Koordinatensystem

POVRAY benutzt im Standardfall ein linksorientiertes 3-dimensionales Koordinatensystem.

Das Raytracing-Prinzip

Das Prinzip das Raytracing stellt die in der Natur ablaufenden Prozesse "auf den Kopf". Der Strahl wird von der Kamera zur Lichtquelle zurückverfolgt. Das ist möglich, da es in der Strahlenoptik ein Prinzip gibt, nachdem Lichtquelle und -senke immer ausgetauscht werden können.

POVRAY-Datentypen

In POVRAY gibt es nur 2 Datentypen:

Float

Beispiele: 1.0 -2.0 -4 34 3.4e6 2e-5 .3 0.6

Vektoren

Beispiel: <1.0, 3.2, -5.4578>

Die meisten Vektoren sind dreidimensional und bedeuten je nach Kontext:

Mit Hilfe der Datentypen können Ausdrücke gebildet werden (das ist der Vorteil gegenüber POVRAY-1.0):


3 * 4 + 0.3
<2, 4, 5> + <7, -2, 2>
3 * <1, 2, 3> --> <3, 6, 9>

Abhängig vom Kontext ist möglich, einen Float-Wert zu schreiben, wo eigentlich ein Vektor erwartet wird: scale 0.3 --> scale <0.3, 0.3, 0.3>

Außerdem gilt:

Aus diesem Grunde ist auch der Ausdruck 5*y statt 5 * <0, 1, 0> = <0, 5, 0> möglich.

Ein einfaches Beispiel


camera {
	location <0, 0.5, -6>
	look_at  <0, 0,   0>
}

light_source {
	<0, 20, -4>
	color rgb <1, 1, 1>
}

light_source {
	<5, 1, -3>
	color rgb <1, 1, 1>
}

plane {<0, 1, 0> -1.2
	texture {
		pigment {
			color rgb <0, 0, 1>
		}
	}
}

sphere {<0, 0, 0> 1
	texture {
		pigment {
			color rgb <1, 0, 0>
		}
	}
}
 

Die Primitiven

Spezielle Grundformen

Flächen 4. Ordnung

Operationen

Constructive Solid Geometry (CSG)

Beleuchtung

Texturen

Allgemeine Texturen Der Gradient Holz Image-Maps Marmor Die Flächennormale und Refraktion Spezielle Texturen

Nebel