From: arsouth@watson.ibm.com (Andrew R. Southwick)
Subject: Re: Maximum Overkill graphics -- How?
Date: Wed, 16 Dec 1992 03:59:56 GMT
News-Software: IBM OS/2 PM RN (NR/2) v0.16 by O. Vishnepolsky and R. Rogers
Reply-To: arsouth@watson.ibm.com (Andrew R. Southwick)
Disclaimer: This posting represents the poster's views, not necessarily those of IBM
Organization: IBM T.J. Watson Research Center

In <776@blue.cis.pitt.edu> djmst19+@pitt.edu (David J Madura) writes:
>I just bought the game Maximum Overkill : Commanche and extremely
>impressed with the graphics.
>
>The game itself is a helicopter simulator but instead of using the
>traditional polygon graphics of most simulators, or even texture mapped
>polygons, the terrain is unbelievably life-like rendered.  Something
>like what Vistapro might generate , except blockier and in real-time.
>
>Quoting from the manual:
>
>"Voxel Space (TM) - a totally new graphics 3-D imaging system.  Using a
>desktop computer, it can perform up to 1 million 3-D calculations per
>second.  That's over 500 times faster than traditional polygon imaging
>systems.

Which do their calculations using large 4x4 matrices in floating point.

>Voxel Space can use real terrain data and render it with directional
>light sourcing, generating up to 48,000 3-D surface variations per real
>time frame."

CAN USE?  DOES USE!  I would guess the "directional light sourcing" has been
pre-computed, and stored directly with the map data-base.

>If you've seen the game and have any ideas on HOW the graphics were done
>please let me know.  I've only been familiar with standard polygon
>imaging and then some texture-mapped polygons but the real-time terrain
>in Commanche is something else.

Yes, indeed, something else.  This is not texture-mapping onto flat 
polygons, or even traditional polygon/spline rendering.

>If you havent seen the game I dont know how to describe it except for
>the ground/mountains/water/grass look like real terrain with all the
>surface and lighting varations, curves and everything else.

Stop by a nearby software store and take a look at the box.  With a DX50 and
a sound card (or two), it is a really impressive game.

My guess for the surface and lighting variations is that they are 
pre-determined.  Instead of saying "this pixel should be a light brown, go 
and find out if there is any light source shining on it" it says "this is 
light brown" for voxels in the sun and "this is dark brown" for voxels in 
the shade of a mountain.  All the shading would be determined when the map 
was drawn.  Or, terrain elevation data was derived from a real topological 
map, colored to represent water and different earth colors, and shaded. 
Then stuck onto the distribution floppy.

Notice that you can't tilt more than 45 degrees.  This means that the game 
can be optimized to have a 2D array of voxels, rather than a true 3D array 
as would be found in other voxel spaces (sorry, don't have my 
Foley/vanDamm/Feiner/Hughes nearby, look at the inside front cover).  So, 
when drawing the ground, the computer works outwards from the helicopter,
drawing voxels in some brute-force algorithm.  Such an algorithm can be
further optimized to draw along one axis, rather than choseing successive
pixels in a diagonal line.  That is, it draws all the visible pixels having 
the same grid X (or Y, depending on heading), using the forward direction of
the helicopter to determine what the size and vert/horizontal displacements
are, then moves on to the next grid Y (or X).  Notice also that the voxels
are square, and aligned with the monitor.
Not all of the voxels in the visible range are drawn, leading to a form of 
temporal anti-aliasing achieved by drawing different sets of voxels in
different frames, leading to a higher percieved resolution than if all 
voxels (from a smaller resolution map) were drawn.

FASCISM: You have two cows. Give milk to the government. They sell it.
--------------------------------------------------------------
My views are my own; behaviorists can stick THAT up their ***!
Andrew R. Southwick
Organization: Junior, Math/Computer Science, Carnegie Mellon, Pittsburgh, PA