There has been an explosive growth in the personal computer market
in the past few years*. This growth, in part, is generated by excitement
and curiosity for multimedia titles. This project is an attempt to obtain
some knowledge and experience on the multimedia title development process.
Specifically, we will take a closer look on issues related to the development
of a three dimensional multimedia game.
(*Side Note: This document was written
in 1996.)
Ray-casting sensation began with the release of a game, Wolfenstein
3D (iD Software), in 1992 (see Figure 3
on the next page). In Wolfenstein 3D, the player is placed on a
three dimensional maze-like environment, where he/she must find an exit
while battling multiple opponents. Wolfenstein 3D becomes an instant
classic for its fast and smooth animation. What enables this kind of
animation is an innovative approach to three dimensional rendering known
as "ray-casting."
Wolfenstein 3D was developed and created by Id Software. Henceforth, Id's programmer,
John Carmack, might well be the person who initiates the ray-casting
sensation (Myers 5).
Ray-casting is a technique that transform a limited form of
data (a very simplified map or floor plan) into a 3D projection by tracing
rays from the view point into the viewing volume (LaMothe 942). For
example, ray-casting transforms something like A into B in Figure
1.
Demo code on Github (uses Javascript)
Final demo (runs on web browsers)
Note that this is not the only application of ray-casting. Ray-casting
can also be used to render terrain map such as in Figure
2 (below) for instance. The important point to remember is that
ray-casting "traces rays backward from viewer's eye to objects."
INTRODUCTION
A
BRIEF HISTORY
WHAT IS
RAY-CASTING?
LIVE DEMO
Before continuing, take a quick look of the technique in action.
Figure 2
Here is an example of a rendering by subclass/variant of ray casting,
known as height mapping or terrain mapping or voxel rendering.
To learn more about voxel rendering, refer to the article by
Peter Friese on More Tricks of Game Programming Gurus; or the book
Black Art of 3D Game Programming by
Andre La Mothe.
If you have a Java capable browser, you can try a voxel program by
clicking here.