Re: [info-performer] pfDoubleDCS & isects

New Message Reply Date view Thread view Subject view Author view

From: Joaquín Casillas (jcasilla++at++isoco.com)
Date: 03/25/2003 02:35:18


Hi Yair,

I'll try to create the segment-set in camera position. I guess I should
multiply the actual pfSegSet coordinates by the top pfDoubleDCS matrix, and
perhaps I'll get single precision values and won't have to change a line in
the collision detection routine (I hope :-)

Another problem could be that I'm using for channels in the app window (four
different cameras). I have to update the top pfDoubleDCS in a predraw
callback, and depending on the channel that it currently being drawn, I
modify the pfDoubleDCS in a way or other (I don't know if it's the best
solution when rendering multiple channels in a double-precision scenary, but
it works). So if I take into account the top pfDoubleDCS for collision
detection purposes, I guess I should only consider one of the channels.

Any comments on this will be appreciated. Thank you very much for the info.

Oops. I'm using Performer 3.0.1 (linux platform).

-------------------------------------------------------------------------

Hi Joaquin !

o What Performer version are you using ?
 - Versions before 2.4 don't support double-precision intersection.
 - Version pf2.4 is inaccurate: it demotes double-precision to
single-precision
   during the intersection traversal of all nodes.
 - Versions pf2.5 and later contain accurate double-precision handling.

o pfGeoSet's contain single-precision geometry. Therefore, when the
  intersection traversal hits a pfGeoSet, it should be able to intersect
  against single-precision segments. In fact, when the intersection
traversal
  hits a pfGeoSet, it demotes all double-precision segments to
single-precision
  segments and then intersects against the pfGeoSet single-precision
geometry.

o If you use pfDoubleDCS as shown in the man pages and pguide examples, then
  you should create your segment-set in a coordinate system with its
  origin at the camera position - not in world coordinates. For segment
tests
  close enough to the camera position, single-precision is enough.

General information:

o The Performer API accepts single precision segments. When the intersection
  traversal hits a double-precision node, it transforms the segments by the
  double-precision matrix and leaves the result in a double-precision
  segment set (this is how pfSegSetd showed up in the Performer include
files).

  When the intersection traversal hits a single-precision node, it demotes
  the segment set to a single-precision one.

-yair

> I'm working in an application that needs double precision values, so I
have
> replaced all the DCS nodes by doubleDCS nodes and done all the stuff for
the
> view transformation as explained in man pages and doubleDCS examples. Now
> the collision detection routine fails because it works with single
precision
> values. It seems that there are pfSegd and pfSegSetd structures that work
> with doubles (although I haven't been able to find any documentation, just
> browse the header files), but the pfNode isect method only seems to accept
a
> pfSegSet structure. I'm sure I'm missing something...
>
> Does anyone know which is the right way of doing isect tests with double
> precision geometry?
>
> Thanks in advance!
>
> -------------------------------------------------------------------------
> Joaquín Casillas Meléndez(Quino), R+D Engineer at iSOCO
> Intelligent Software Components, S.A. http://www.isoco.com
> Addr. iSOCOVal: Profesor Beltrán Báguena, 4, oficina 305, 46009 Valencia
> Voice: +34 96 346 71 43 Fax: +34 96 346 71 42
>
> -----------------------------------------------------------------------
> List Archives, Info, FAQ: http://www.sgi.com/software/performer/
> Open Development Project: http://oss.sgi.com/projects/performer/
> Submissions: info-performer++at++sgi.com
> Admin. requests: info-performer-request++at++sgi.com
> -----------------------------------------------------------------------
>

--
\_________  \_____  \__    \__  \_____
\_________  \_____   \__   \__  \_____         Yair Kurzion
       \__     \__   \____\__      \__         yair++at++sgi.com
       \__          \__  \__                  (650) 933-6502
       \__          \__   \__
       \__          \__    \__

----------------------------------------------------------------------- List Archives, Info, FAQ: http://www.sgi.com/software/performer/ Open Development Project: http://oss.sgi.com/projects/performer/ Submissions: info-performer++at++sgi.com Admin. requests: info-performer-request++at++sgi.com -----------------------------------------------------------------------


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Tue Mar 25 2003 - 02:38:11 PST

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