|
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 |
|
|