I developed Unit Vector Math for 3D Graphics in 1978 in order to do a 3D space war game. 1978 was before the PC, the 68000, and the DSP.
In this geometric model there is an absolute Universe filled with Objects, each of which is free to rotate and translate. Associated with each Object is an Orthonormal Matrix (i.e. a set of Orthogonal Unit Vectors) that describes the Object's orientation with respect to the Universe. Because the Unit Vectors are Orthogonal, the Inverse of the matrix is simply its Transpose. This makes it very easy to change the point of reference. The Object may look at the Universe or the Universe may look at the Object. The Object may look at another Object after the appropriate concatenation of Unit Vectors. Each Object will always Roll, Pitch, or Yaw around its own axes regardless of its current orientation without using Euler angle functions.
When I went to Atari, a very stripped down version of the algorithms was used in BattleZone. The full version was used in Star Wars, Last Starfighter, TomCat, and Hard Drivin'/Race Drivin', as well as those games that used the Hard Drivin' hardware.
I am making this article available in several formats.
Each has advantages and disadvantages.
HTML - Good for viewing on-line Can be difficult to save to disk because
Not recommended for printing because it doesn't
|
Microsoft Word (277KB) - Good for saving and printing If you do not have Microsoft Word, a free viewer is available at http://office.microsoft.com/downloads/2000/wd97vwr32.aspx |
Please send comments to: comments@jmargolin.com
Copyright 2001 Jed Margolin