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
-----------------------------------------------------------------------
This archive was generated by hypermail 2b29 : Tue Mar 25 2003 - 02:38:11 PST