Ray-Tracer Results
This page is designed to give you a sense of what your images should look like. In particular, it will show you
the results that you should be getting as your progress through the implementations of the different features of the
ray tracer. For all of these images, it is assumed that you have called:
% Assignment2 --in test.directional.ray --out test.bmp --width 640 --height 480 --rLimit 5 --cutOff 0.0001
to generate the image output to test.bmp
. (You can download the necessary .ray
files here.)
-
If you have written your RaySphere::processFirstIntersection properly, the generated image should look like:
-
If you have written your RayTriangle::processFirstIntersection properly, the generated image should look like:
-
If you have modified your GetColor so that it returns the emissive and ambient components of the lighting
equation, the generated image should look like:
-
If you have written your RayLight::getDiffuse properly, the generated image should look like:
-
If you have written your RayLight::getSpecular properly, the generated image should look like:
-
If you have written your RayLight::isInShadow properly, the generated image should look like:
-
If you have modified your GetColor function so that it takes into account the associated transformation
of the scene-graph node, the generated image should look like:
-
If you have modified your GetColor to recursively cast rays in the reflected direction, the
generated image should look like:
-
If you have modified your GetColor to recursively cast rays in the transparent direction, the
generated image should look like:
-
If you have implemented your RayLight::transparency to use partial shadows, the generated image should
look like:
-
If you have implemented your RayScene::refract to use indices of refraction, the generated image should
look like:
-
If you have implemented your Triangle::processFirstIntersection to support texture coordiantes, the generated image should
look like:
- Your ray-tracer on
test.point.ray
should look like:
- Your ray-tracer on
test.spot.ray
should look like:
- Your ray-tracer on
test.sphere.ray
should look like:
If you have implemented the methods for the Intersection and Difference classes, your ray-tracer on lens.ray
should look like:
Once you have implemented your accerelated ray-tracer, you may want to try running it on some of the more complex
models. It is not recommended that you try running your ray-tracer on these models if you have not implemented
acceleration. The models consist of thousands of triangles and will take just shy of forever to ray-trace without
acceleration.
-
The resulting image you would get from running your ray-tracer on
dog.ray
should look
like:
|
Read: 0.0172841 seconds
Ray-traced: 1.54633 seconds
Pixels: 1600 x 1200
Primitives: 3222
Rays: 4,628,797 (2.41083 rays/pixel)
Ray-primitive intersections: 10,193,095 (2.2021 intersections/ray)
Ray-bounding-box intersections: 58,928,890 (12.7309 intersections/ray)
|
-
The resulting image you would get from running your ray-tracer on the
bunny.ray
should look
like:
|
Read: 0.90769 seconds
Ray-traced: 1.50059 seconds
Pixels: 1600 x 1200
Primitives: 208,578
Rays: 3,596,334 (1.87309 rays/pixel)
Ray-primitive intersections: 7,512,391 (2.0889 intersections/ray)
Ray-bounding-box intersections: 70,920,709 (19.7203 intersections/ray)
|
-
The resulting image you would get from running your ray-tracer on the
dragon.ray
should look
like:
|
Read: 2.17136 seconds
Ray-traced: 1.50963 seconds
Pixels: 1600 x 1200
Primitives: 500,002
Rays: 3,982,258 (2.07409 rays/pixel)
Ray-primitive intersections: 7,695,994 (1.93257 intersections/ray)
Ray-bounding-box intersections: 66,343,987 (16.6599 intersections/ray)
|
-
The resulting image you would get from running your ray-tracer on the
buddha.ray
should look
like:
|
Read: 3.69095 seconds
Ray-traced: 2.21403 seconds
Pixels: 1600 x 1200
Primitives: 868,330
Rays: 4,319,773 (2.24988 rays/pixel)
Ray-primitive intersections: 9,485,303 (2.19579 intersections/ray)
Ray-bounding-box intersections: 102,463,017 (23.7195 intersections/ray)
|
-
The resulting image you would get from running your ray-tracer on the
gargoyle.ray
should look like:
|
Read: 7.52858 seconds
Ray-traced: 3.06638 seconds
Pixels: 1600 x 1200
Primitives: 1,744,876
Rays: 4,060,079 (2.11462 rays/pixel)
Ray-primitive intersections: 10,321,103 (2.54209 intersections/ray)
Ray-bounding-box intersections: 146,432,431 (36.0664 intersections/ray)
|
-
The resulting image you would get from running your ray-tracer on the
nefertiti.ray
should look like:
|
Read: 8.65166 seconds
Ray-traced: 2.10415 seconds
Pixels: 1600 x 1200
Primitives: 2,018,234
Rays: 4,189,187 (2.18187 rays/pixel)
Ray-primitive intersections: 8,609,990 (2.05529 intersections/ray)
Ray-bounding-box intersections: 89,186,244 (21.2896 intersections/ray)
|
-
The resulting image you would get from running your ray-tracer on the
david.ray
should look like:
|
Read: 23.1708 seconds
Ray-traced: 3.97317 seconds
Pixels: 1600 x 1200
Primitives: 5,269,880
Rays: 4,458,329 (2.32205 rays/pixel)
Ray-primitive intersections: 12,263,943 (2.75079 intersections/ray)
Ray-bounding-box intersections: 179,663,695 (40.2984 intersections/ray)
|
-
The resulting image you would get from running your ray-tracer on the
david.soft.ray
should look like:
|
Read: 22.9722 seconds
Ray-traced: 91.4933 seconds
Pixels: 1600 x 1200
Primitives: 5,269,880
Rays: 130,939,442 (68.1976 rays/pixel)
Ray-primitive intersections: 401,514,926 (3.06642 intersections/ray)
Ray-bounding-box intersections: 4,285,093,116 (32.7258 intersections/ray)
Cone-bounding-box intersections: 101,439,289 (0.774704 intersections/ray)
|