From: Dave Stampe-Psy+Eng <[email-masked]>
Date: Wed, 23 Oct 91 19:44:19 -0400

A reply to "Gary McTaggart" <[email-masked]>

>-When objects are moving in the "world", would it be appropriate to only
>recalculate the screen coordinates from the bottom up (world coordinates to
>screen coordinates) only every X number of frames, depending on the nature
>of the movement.
>

Not a bad idea... of course, you have to keep track of the object's position
_somewhere_ in full resolution (in case the user "moves" closer).  In
effect, you don't update the world database, or flag the object as moved
right away.

The problem is, (especially if you're using eyephones) that the viewpoint
is just as likely to move as the objects.  This requires almost all of the
objects on the screen to move significantly.  It would work fine if the
viewpoint doesn't change, though.

>-If the movement of the object in the view coordinate system is:
>    1. a small amount of rotation in on the X or Y axis
>    2. any amount of rotation along the Z axis
>    3. any small movement ("small" determined by experimentation)
> 
> , could we not treat the object as a 2D image and use the screen
>coordinates along with the previous Z view coordinate to approximate where
>the object should be?
>

This is practical in some cases: it depends whether you do partial or full
screen updates.  Again, I'm not sure if it's always appropriate for VR,
because the viewpoint often changes.

If the object rotates on _any_ axis, the rendered image will change.  
Because of aliasing effects, even subpixel motions will affect the image.
Whether the preservation of this effect is important, though, I don't know.

The 2D image idea isn't too bad for distant objects, though, as it takes BIG
changes in the viewpoint or the objects themselves to change them.  So, if
you have an "outdoor" VR world, it's worth it.  "Indoor" worlds with all
objects close might not be able to use it, though.

This whole idea is a form of partial updating, which can be useful if
there is only a few moving objects or the viewpoint is stationary.
I haven't started serious work on partial updating yet, because it falls
under the area of the graphics front-end that generates drawing lists.
I've been concentrating on the renderer because it sets the standards for
the rest of the software.  It seems that a good VR renderer should also
be able to redraw small areas of the screen, which is one form of what you
were suggesting.  I'm not sure whether keeping individual objects images
is a good idea, because small objects can be drawn fairly fast, doing a
"cutout" copy is quite expensive on a VGA video system, and close objects
that look big tend to move and change a lot.  Still, some good ideas to
consider, some of which WILL affect the renderer.

>I have not actually implemented the idea to test its effectiveness, and
>being that I'm new at this sort of thing, this could be a common practice.

Yes-- on lowend systems, and in video games.  We have to see if it can be
fit into a VR system.  I'm pretty new to 3D rendering myself, although
I have a lot of low-level graphics experience.  I'm not too thrilled about
programming the world database handler myself, as it's not really my
field.

And thanks for the input.

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