From: Dave Stampe-Psy+Eng <[email-masked]>
Date: Tue, 22 Oct 91 15:56:26 -0400

Replying to Lance Norskog <[email-masked]>

>>>You should also consider that background walls and floors can be done
>>>by pre-rendering them onto pixmaps, then resampling the pixmaps
>>>onto the screen first.  Then, start drawing your wire-frames or
>>>filled polygons.
>>

>The VGA hardware is terminally weird.  It has this mode where you
>can copy from one part of card RAM to another faster than from
>main RAM.  This makes pre-rendered textures interesting, since 320x200
>is only 64k, and the VGA boards now support 1meg of RAM.

Well... that IS true, and you can copy 4 bytes with 2 CPU accesses, or
fill all 4 with 1 CPU access.  The 1 meg cards are'nt that good, though, as
accessing that extra RAM is highly card- and mode- specific.  So the
software will have to assume a 256K VGA card.

Now, the most memory used is for double-buffered 320x200x256 color mode in
stereo (4 pages) which eats up all but 1536 pixels worth of memory.. Still
possible, I guess.  But if we drop down to 320x200x16 colors, we get 8 pages
so it's quite possible there, and the copy takes less than 10 mS.  Quite
possible.  Except any major viewpoint shift wrecks your background...

< discussing BSP and ASP algorithms>

>You'll want four or five different polygon database management
>algorithms to handle different parts of the scene: walls&furniture,
>moving hard objects, moving flexible objects, glove cursor, etc.
>BSP and ASP help with models for moving hard objects and furniture.
>
>A once-every-time sort must be done on the database of large moving 
>and still objects, then each object must itself be added to the
>polygon list, then you do a scan-line render on a small polygon
>list.  This gets very complex, and may be slow.  In fact, this
>method may only get used when you're rendering animations in
>batch mode of fly-throughs which you've logged.  Autodesk animator
>does 320x200x256 colors, and of course you'll want to share
>your demos :-)

Hmm, are we discussing the same algorithms?  As I read Foley's latest book
"Computer Graphics: principles and practice" the BSP seems to help with
2 things:
- eliminating polys that fall outside the viewport efficiently
- generating an ordered list of polys so that masking is done by _drawing_
  the polygons.

Now I am aware that the conversion from an object tree to a poly list
(hopefully ordered in some way) is expensive and the BSP and ASP help
here, but there are other ways to optimize this.  I am proposing a
simple set of "enclosing" points for each object that would control
the sorting, masking and clipping of each object.  This would reduce
computations by 90% during list transversal.  Let me know what you think.

A technical point about BSP: what happens if another object intrudes into 
a concave object?  Is this a problem, or not?

IMHO, Foley does not cover the BSP that thoroughly.  Any other references?
CAN the BSP be used to eliminate polys inside the viewport BEFORE rendering
(no z-buffer here-- just draw and draw...)

--------------------------------------------------------------------------
| My life is Hardware,                    |                              | 
| my destiny is Software,                 |         Dave Stampe          |
| my CPU is Wetware...                    |                              | 
| Anybody got a SDB I can borrow?         | [email-masked] |
__________________________________________________________________________