PRender is a parallel raytracer written in C++. The main goal of this project is not a superfast renderer but to implement and play around with various algorithms, e.g. octrees for intersect computation, path-tracing, photon mapping, etc..

Up to now a simple raytracer is implemented, i.e. no global illumination. Albeit supersampling is supported. Various types of cameras are available, e.g. a pinhole-camera, an orthographic camera and a thinlens-camera (for depth-of-field).

PRender also uses his own description language for models. It is similar to C, has conditions, loops and allows an easy definition of the scene to render. Different kinds of objects are available, e.g. cubes, spheres, cylinders, planes and triangles. These objects can be transformed by translation, scaling (independent in all three axis) and rotation.

The computed images can be stored in the PNG- (with 16 bit per channel), JPEG- and PNM-format, although for the first two the corresponding library has to be installed. Beside that, a X11-preview is supported.

PRender also supports more than one processor, where the parallelisation is done by dividing the image into tiles and spawing child processes which render individual (and disjoint) set of tiles which are send back to the master process.

PRender is known to work on a variety of UNiX-systems, e.g. Linux, Darwin (MacOSX), Solaris, AIX, HP-UX. Several C++ compilers are supported, e.g. GCC, Intel, PathCC, Sun Forte and IBM VisualAge.


The sourcecode of PRender is restricted to the terms of the GNU Public License.


The following pictures are based on ply-modells from the Large Geometric Models Archive.

The next two pictures give an example for depth-of-field and the standard-scene in PRender