[Gtkradiant] [Bug 227] enhancement-2d view options

gtkradiant@zerowing.idsoftware.com gtkradiant@zerowing.idsoftware.com
Wed, 03 Apr 2002 18:05:06 -0600


------- Additional Comments From ydnar@rasterproductions.com  2002-04-03 18:05 -------
The point of latent updating is to minimize latency between user action and the 
object the user is manipulating directly.

Another example of this would be rendering the views in a progressive manner, 
for example the camera window:

- Crudely sort the entity list on distance from the camera.
- Walk sorted list in order, and every N ms, allow it to be interrupted if the 
user state has changed. At this point the view is marked "dirty" and will to be 
fully refreshed.
- If the state doesn't change, the view is fully rendered.

This would result in faster interactive performance when the user wants it most 
(mouselooking or driving around in the camera view), but still provides 
a "full" view of the scene when UI latency is less important (the user isn't 
clicking or hitting keys...idle time).

This approach is used by many programs, such as Photoshop or GIMP (tiled 
images), Lightwave (interrupted rendering) and the Myth series of games 
(software renderer in unfiltered mode). Certain other programs go a step 
further and render using a less-expensive method (wireframe, for example) when 
UI latency is a factor.

A simpler example is resizing a window. Most windowing systems use an outline 
to approximate the size of a window rather than reflowing/refreshing a window 
when you resize it. This is less relevant on a faster machine, but could you 
imagine trying to resize Slashdot on IE on a Pentium 90 box?

The human eye is pretty forgiving, and when you're trying to look at something 
or move the camera around, a fast-but-crude approximation (or unfinished) 
render is preferable to waiting for a full refresh.

------- You are receiving this mail because: -------
Whoops!  I have no idea!