point in bounding volume test

New Message Reply Date view Thread view Subject view Author view

Bernd Froehlich (bernd++at++viswiz.gmd.de)
Tue, 1 Mar 94 15:37:19 MET


two questions:

1. what is the best way to do a point in bounding box/bounding sphere
   test with Performer? I have a hierarchical scene graph with DCSs
   attached to each inner and leaf node.
   I thought about using pfSegsIsectNode with a zero length segment but
   I think this won't help because it actually computes the
   intersection of the line segment with the bounding spheres or triangles.
   And if the line segment is a point it will never return an intersection.

2. We are working on a stereo-application using quad buffers.
   There are two channels attached to a pipe which are linked together as
   a channel group. The draw callback switches left- and rightbuffers.

   The left and right eye view are set using

      pfChanViewMat(chanLeft, LeftEyeView);
      pfChanViewMat(chanRight, RightEyeView);

   and the frustum by

      pfMakePerspFrust( chanLeft, xminl, xmaxl, yminl, ymaxl );
      pfFrustAspect(chanLeft, PFFRUST_CALC_VERT, TableAspect);
      pfFrustNearFar( chanLeft, Z_Near, Z_Far );

      pfMakePerspFrust( chanRight, xminr, xmaxr, yminr, ymaxr );
      pfFrustAspect(chanRight, PFFRUST_CALC_VERT, TableAspect);
      pfFrustNearFar( chanRight, Z_Near, Z_Far );

   The view matrices and frustra are updated for every frame and this
   seems to be a problem.

   Everything works fine if pfMultiprocess(PFMP_APPCULLDRAW) or
   pfMultiprocess(PFMP_APP_CULLDRAW) is set, but using
   pfMultiprocess(PFMP_DEFAULT) causes a flickering view.
   The objects are moving correctly only the view is flickering.
   We kept the view matrices constant which doesn't help.
   Then we kept the frustra constant, only changing the view matrices
   which also doesn't help.
   Only if you keep the viewing matrices and the frustra constant
   then it works. Seems that the viewing information is not mp safe?

   It would be possible to keep the viewing matrices constant and to
   transform the objects into a fixed viewing coordinate system, but the
   viewing frustra have to be changed for each frame in our application.

   I had already a short discussion with Michael Jones and he wrote:

>This is a multiprocessing problem. Use "passthrough" data and you
>will be ok. Look and the pfPassChanData() man page for details on
>this. Your data is changing before you use it.

   Shouldn't be the viewing information automatically copied
   into passthrough-buffers if I call pfFrame? So is it a bug or not?
   What should I put into passthrough data? I can't put the
   pfChannel itself into passthrough data. It is possible to do
   the stuff with GL-calls and pass-through data inside the
   draw callback but this is not the way it should be.

Bernd

bernd++at++viswiz.gmd.de

-------------------------------------------------------------------------
Bernd Froehlich
Scientific Visualization Dept.
GMD
Schloss Birlinghoven
D-53757 St. Augustin
Germany
-------------------------------------------------------------------------


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:50:11 PDT

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