Ray Casting is a technique used to
draw a 3D world using "rays" of
light originating from the viewer
(or more correctly, a view plane).
By solving a linear equation,
it can be determined if a ray
intersects with a surface or not,
and if so, where in 3D space the
intersection occurs.
The technique is in many ways similar to
Ray Tracing. The most notable difference
is that with Ray Casting the rays
are never reflected off the
objects they hit, nor will anything
cast shadows (although the latter
can be simulated by using
pre-rendered texture maps). Also,
while a ray can theorhetically
intersect with any kind of
surface, most Ray Casting
engines limit themselves to
polygons or triangles
to keep rendering times low.
Another advantage Ray Casting has
over traditional polygon rendering
is that there is no need to calculate
hidden surfaces, or to keep a
Z buffer. Nor is it required
to scale or rotate
textures beforehand, as the
solution to the
mentioned "ray equation"
give the final coordinates
for the texture.