Opaque Raytracer

This is the webpage of my (Vlad Stamate) raytracer, called "Opaque". 

Please see the "Features" page for more information of what Opaque can do. 
Also check the "News" page for development updates. 
Pass by "Thanks" page since I came here by sitting on shoulders of giants (and friends).

Quick description:

Opaque is a raytracer that implements few global illumination algorithms such as direct raytracing, path-tracing, photon-mapping and bi-directional raytracing. It also does distributed rendering with my own client/server/slave implementation. It supports Windows, OSX and Linux. It can use the CPU or GPU for rendering.


Why a ray tracer? Why not! Opaque is meant as a testbed for different physically correct (loose term here) rendering algorithms. I have already implemented classical raytracing, photon mapping, path-tracing and bi-directional path-tracing.

(click to enlarge)

Sample of console output from running Opaque:

Opaque v1.0 by Vlad Stamate
SCENE file: photon_map_2.scene loaded succesfully.
Scene info:
        Filename: photon_map_2.scene
        Number Lights: 1
        Number Objects: 7
        Number Triangles: 2904
Scene Octree info:
        Avg Obj/leaf: 1.54
        Avg depth: 5.85
        Max depth: 6
Tracing photon map  done
        Number photons: 1057943
        Time (ms):      10938 ( 0min 10s 938ms )
        Photons/sec:    96721.80
Photon KDTree information:
        Number leafs: 822
        Avg splits: 9.86
        Avg objects/leaf: 1287.04
Multithread info:
        Using 6 cores
        Block size:  32x32
        Number blocks: 920
Raytracing ..........
Primary rays: 921551
Primary hits: 921579
Shadow rays:  5450485
Total rays:   1051673
Rays/sec:     5210.33
Time to render (ms): 201844 ( 3min 21s 844ms )
Shadow Cache:
        Hits:   110216
        Misses: 1822947
        Ejects: 0
Intersections stats:
        Triangle:       104593881
Photon Trace Stats :
        Number reflections: 0
        Number refractions: 0
        Number absorbtions: 1057943
Saving image: photon_map_2.ppm