Corey O'Connor
Assignment 2
CS155 - Graphics
For assignment 2 in cs155 we were asked to implement a ray-tracer. Here's a list of the current features of my
ray-tracer:
Shapes:
- Sphere primitive
- Triangle primitives
- Cylinder primitives
Doesn't support that many primitives. But you can still make cool looking scenes really slowly. ;-)
Other Fancy Features
- hierarchal Coordinates. Ok. So this one isn't that fancy.
- Texture mapping with bilinear filtering
- Full lighting effects.
- Point lights
- Directional lights
- Spotlights
- Color Projection
- Shadows
- Refraction. accurately predicts Snell's law.
- Reflections
- Jittering: Super sampling, fuzzy reflections and fuzzy refraction.
This increases processing time a significant amount, but it does make smoother images. Probably not worth the
extra time. Since a jitter value of 10 looks best but takes a very long time... Very long, so very long.
Instead of just averaging the randomly jittered rays, I took a weighted average of the rays based on how
different from the original ray. I felt this would allow the image to become smoother while still keeping the
sharpness.
For instance, this image was produced with no jittering: 
While this was produced with 3 jitter rays for supersampling, fuzzy reflections and refractions: