de | en

PRender

PRender ist ein paralleler Raytracer, geschrieben in C++. Das Hauptaugenmerk bei dessen Entwicklung gilt nicht einer besonders schnellen Berechnung der Bilder, sondern der Implementierung von verschiedenen Algorithmen, z.b. Octrees für die Schnitt-Berechnung, Path-Tracing, Photon-Mapping etc..

Im Moment ist ein einfacher Raytracer implementiert, d.h. noch keine globale Beleuchtung. Allerdings wird ein Supersampling unterstützt. Es stehen verschiedene Kameratypen zur Verfügung, darunter eine Pinhole-Kamera, eine orthographische Kamera und eine Kamera basierend auf dünnen Linsen (für die Tiefenunschärfe).

PRender verwendet eine eigene Beschreibungssprache für die Modelle. Sie basiert auf Lua und erlaubt somit eine einfache Definition der zu berechnenden Szene. Als Objekte stehen Würfel, Kugeln, Zylinder, Ebenen und Dreiecke zur Verfügung. Diese können mittels Translation, Skalierung (unabhängig in allen 3 Achsen) und Rotation entsprechend modifiziert werden.

Die berechneten Bilder können im PNG- (16 bit pro Kanal), JPEG- oder PNM-Format ausgeben werden, wobei für erstere die entsprechenden Bibliotheken vorhanden sein müssen. Ausserdem ist eine Vorschau über X11 implementiert.

PRender unterstützt ebenfalls mehrere Prozessoren, wobei für die Parallelisierung das Bild in einzelne Bereiche aufgeteilt wird, die von Kind-Prozessen unabhängig voneinander berechnet und anschliessend an den Vater-Prozess zurückgeschickt werden.

PRender läuft auf allen UNiX-Systemen, insbesondere Linux, Darwin (MacOSX), Solaris, AIX und HP-UX. Es werden alle gängigen C++-Kompiler unterstützt, etwa GCC, Intel, PathCC, Sun Forte und IBM VisualAge.

Quelltext

Der Quelltext von PRender steht unter der GNU Public License.

Gallerie

Die folgenden Bilder basieren auf Ply-Modellen aus dem Large Geometric Models Archive.

Nachfolgend noch ein Beispiel für Tiefenunschärfe und die Standardszene in PRender.

.