Adam Campbell's Website
Ray tracing - misc. features



Normally, we trace one ray through each pixel and record the intersected object's color as the color of the pixel. This produces hard edges, so instead, we trace many rays through each pixel and average the values. This results in softer edges at the cost of more rendering time. Download the scene and camera files here SCENE and CAMERA
Rays per pixel Time
1 0.28
4 0.73
25 3.66
100 13.24
With instancing, we can define a model's geometry once and redifine it in the scene many times. Also, we can scale, rotate and translate the geometry as one object. This model was obtained from Doom3. Download the scene and camera files here SCENE and CAMERA
In order for your tracer to be efficient, you must implement some sort of spatial subdivision. Doing this prevents your ray tracer from attempting to intersect every single object in your scene. The rays will only be intersected with objects that are located close to the ray's path. One thing that can increase (or decrease) the performance of your bounding volumes is the number of objects located in the leaf nodes. Below is a comparison of the times for the model pictured. The model to the left contains one million spheres, and if you would like the file, e-mail me. If your ray tracer was written in Java, you will run out of heap memory, so run your ray tracer with "java -Xmx1000000000 RayTracer" to allocate more memory. Download the scene and camera files here SCENE and CAMERA
Objects in leaf Time to create BVH Time to render
10 62.203 11.98
100 65.187 12.05
1000 57.0 57.09
1000000 33.344 17417.37