Michael Jones (mtj++at++babar)
Fri, 30 Sep 1994 16:08:53 -0700
:I'm having a problem with LOD's. I'm running on an ONYX RE2 with
:4 CPU's and 2 RM4's. If I run my simulation with a 1280x1024 video
:output format everything is fine. If I setmon to a 640x512 window
:the LOD switch ranges appear to be screwed up and don't switch until
:the eyepoint is much closer to the LOD center.
This is not a bug, it's a feature. Really. See below...
:I need to run with the smaller video output format since this
:gives a higher frame rate.
Reasonable when fill limited.
:Why would changing the video output format effect LOD ranges?
Because "distance" is not the real criterion for LOD selection.
If it were, then looking through a narrow field-of-view channel
(such as a special sensor or telescope) would always show low
LOD versions of models. It's pretty easy to see that the FOV
should effect the LOD as follows:
small FOV == maginification == higher LOD than normal, so:
decrease the actual range when computing LOD's
large FOV == minification == lower LOD than normal, so:
increase the actual range when computing LOD's
The other factor is the number of pixels used to represent the
channel on the screen. When few pixels are used, sampling theory
suggests that there is a minimum spatial frequency which can be
properly reconstructed, so:
large channel extent in pixels == higher LOD than normal, so:
decrease the actual range when computing LOD's
small channel extent in pixels == lower LOD than normal, so:
increase the actual range when computing LOD's
These factors combine linearly to make LOD selection have the
same visual "quality" impact irrespective of channel size and
FOV. IMHO, this is a good feature in IRIS Performer and should
not be seen as a bug.
Even so, you may not want this auto-LOD-scaling processing for
any number of reasons, and we thought about that. If you take
a look at the pfChanLODAttr man-page, you'll see that this
behind-the-scenes processing can be disabled by setting the
PFLOD_FRUST_SCALE factor to zero.
Also, the magic LOD scaling process is described there as
well. Here's the text:
IRIS Performer level-of-detail behavior is primarily dependent on
pfChannel viewing parameters such as view position, field-of-view, and
viewport pixel size. IRIS Performer assumes that LODs are modeled for a
canonical FOV of 45 degrees and a viewport size of 1024 pixels. IRIS
Performer computes a scale value for pfChannels whose FOV or viewport
size differ from the defaults. This scale value is used to modify LOD
ranges so that correct LOD behavior is maintained. If your LODs were not
modeled with the above defaults you may use PFLOD_SCALE(see below) to
adjust the LOD ranges.
Other LOD modification parameters are set with pfChanLODAttr. attr is a
symbolic token that specifies which LOD parameter to set and is one of:
PFLOD_FRUST_SCALE
The range multiplier based on chan's viewport and FOV is
multipled by val. Typically, this feature is enabled with a
value of 1.0 and disabled with a value of 0.0.
Hope this helps,
Michael Jones
--Be seeing you, Phone:415.390.1455 Fax:415.390.2658 M/S:8U-590 Michael T. Jones Silicon Graphics, Advanced Graphics Division mtj++at++sgi.com 2011 N. Shoreline Blvd., Mtn. View, CA 94039-7311
This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:50:34 PDT