Our first project for the class involves producing ray-traced images through solving many root-finding problems. While ray tracing can produce realistic images involving lightning, shadows, and reflections, the main disadvantage of ray tracing is its slow performance, making it impossible to be rendered real-time. While the previous post by sambuu stated that through highly optimized ray tracing algorithms, “the OpenRT group was able to achieve 20 fps while running a ray traced version of Quake 3” with a cluster of computers at 36 Ghz total, 36 Ghz personal computers may not be viable anytime in the future. Additionally, from personal experience, the minimum frame rate for a first person shooter (fps) game to run smoothly is around 25-30 frames per second. Unfortunately, it seems the technology to render computer games real time through ray tracing is still at least a few years away.
On the other hand, ray casting is a much more simplified version of ray tracing and can be easily done in real-time. While both ray casting and ray tracing involve creating images by tracing rays of light from the eyes of the observer and determining when that ray intersects an object’s surface, ray casting takes advantage of shape constraints of objects and traces one ray per group of pixels instead of one ray per pixel. For example, by using the fact that walls are always perpendicular to floors, all have the same height, and exist in only two orientations, a whole column of pixels can be traced by using one ray. Essentially, ray casting takes a simple 2D grid map and projects it into 3D by tracing rays from a “viewing point into the viewing volume“. This allowed for ray casting to be implemented for many early computer graphics applications such as 3-D computer animations of the film Tron and in real-time for first person shooter games like Wolfenstein 3D and Doom. Despite the fact that the images produced looks horrible (by today’s standards) and very blocky, it was an innovation that created a new genre of video games.
For more information, see
A table comparing ray casting and ray tracing.
A tutorial on raycasting.
Another tutorial on raycasting with code.
Raytracing 2D java applet.






Leave a Comment
You must be logged in to post a comment.
* You can follow any responses to this entry through the RSS 2.0 feed.