Clipping Error in Perf 1.2 with off-axis Perspective

New Message Reply Date view Thread view Subject view Author view

Robert Lechner (rlechner++at++gwsmtp01.mdc.com)
Wed, 13 Dec 1995 13:41:47 -0600


Fellow Performer-ites
    
We have a channel that slews around in space with regards to the
viewpoint (displayed on a flat screen plane). Thus, we are trying to do
off-axis perspective. We encounter a clipping problem when we add a
view offset to one of our channels.

The following snipet is how the channel is setup.
  
      /* channel one offset from channel zero */

      pfSetVec3(xyzOffsets, 0.0f, 0.0f, 0.0f);
      pfSetVec3(hprOffsets, -72.0, 0.0, 90.0);
      pfChanViewOffsets(chan, xyzOffsets, hprOffsets);

   We are using the following code to create the perspective
   frustum:

      pfChanAutoAspect(chan, PFFRUST_CALC_NONE);
      pfFrustNearFar(chan, 1.0, 5000.0);
      pfMakePerspFrust(chan,
        near*pfTan(hfov_l),
        near*pfTan(hfov_r),
        near*pfTan(vfov_d),
        near*pfTan(vfov_u));
      pfChanView(chan,
         ViewState->initView.xyz,
         ViewState->initView.hpr);
  
Problem:
   When changing the vertical or horizontal FOV (eg. vfov_d += delta
vfov_u += delta), the scene gets clipped (particularly when the FOV
crosses the 0/0 degree point of the channel) (gone entirely when far off
0/0). You can actually seen polygons in the scene slowly get clipped out
as the perspective slews. The problem only seems to occur on the
channel with the view offset.

I am running Performer 1.2 and I am assuming this to be a Performer
limitation. Does anyone know a fix for this or how to turn the clipping off.
We read an old mailing about setting the perspective for the entire FOV to
be covered, and then resetting the perspective in the draw (but is was
not very clear as to how to implement this).

   (NOTE: I am not trying to do stereo. The rotation is done to
          increase the vertical FOV).

If this is a Perf 1.2 limitation, is it corrected in Perf 2.0?????

Thanks for any input

jstewart1++at++gwsmtp01.mdc.com
rlechner++at++gwsmtp01.mdc.com


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:52:08 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.