James Bigler: CS6620 Homework Final
Show off my ray tracer!
Click to see a 1000x1000 image of my scene.

This one has the entire image
in focus.
The things I added to my raytracer were
- simple csg (dice)
- one bounce indirect lighting calculation
- Distance attenuated light sources (needed for the one indirect
lighting)
- Smooth triangular meshes
- Even distribution of randomness (fuzzy reflection, depth-of-field,
soft shadows) by precomputing samples for each pixel.
Well, it took me forever to model this thing. All the models are
to scale. I spent a while measuring all the houses and hotels, game
board, cards, and money. The room is completely enclosed with
off-white walls, white ceiling, and a green floor.
Some things to note
- The top of the board was too large for my scanner, so I had to
scan it in 5 pieces and photoshop it together. I think it turned out
nice. The final image was 2865x2873.
- There are five player pieces. Each has a different material.
- Gray - diffuse only
- Red - specular highlights
- Blue - 50% reflective
- Yellow - Dielectric, index of refraction 1.3
- Marble - Perlin Noise texture
- The pawns were modeled by me with a spline patch modeler called
sPatch. The geometry was then exported as smooth triangles and read
in by my code. The geometry has 8512 triangles.
- The table has fuzzy reflection and you can see the image of a Star
Wars Episode IV poster.
- The board also has fuzzy reflection, but you can't see it too
well. Only in some spots.
- I modeled the little houses and hotels myself then used instancing
to spread them all over. The hotels are actually houses with a red
material and scaled up.
- There is also depth of field. I used an aperture of 1 cm.
- The entire scene was modeled in centimeter scale.
- There was tons of instancing. Almost every single object was
instanced. The stack of cards are an instance of several instances
all slightly displaced to give it more of a real effect. That
instance was then added to the game board instance which was rotated
on the table. The dice are from the same instance, but one is rotated
to give a different roll. This is an example of where instancing does
you well. :)



