A ray tracer (that which does ray tracing) is a tool used to generate 3D computer
graphics. Ray tracing is a rather popular method of rendering high-quality graphics
because it is easy to understand and it models certain lighting effects (such as
reflection and refraction) rather realistically.
Why am I writing one?
Look at the image to the right. Is there any question that ray tracing is cool?
Is there any question that he who writes a ray tracer is cool?
What features does my ray tracer have that make it cool?
Recursive Spatial Subdivision with 3DDDA - This is a method of splitting
up the space in the scene such that my rays don't have to be tested against
every single object in the scene. Without this, ray tracing would not be
worth the time!
I learned this algorithm from Dr. Tom Sederberg of BYU. He has a
good document explaining the algorithm in 2D here.
Soft Shadows - I recently added code to my ray tracer to support turning any
old sphere in my scenes into a light source. In order for this to have the
effect of softening the shadows in the ray traced scene, I randomly generate
many shadow rays within the cone extending from the point of illumination
to the edges of the spherical light source.
Transparency and Refraction
Beer's Law - It makes my transparent objects look more real.
Rudimentary Texture Mapping - It's very limited right now. Check back
later for my progress.