From: Joaquín Casillas (jcasilla++at++isoco.com)
Date: 03/26/2003 09:43:04
Hi Yair,
I'm using independent position and orientation values for the cameras, so
I'll try to create one pfDoubleDCS for each camera as you suggest.
Thank you very much for the info.
Regards,
-------------------------------------------------------------------------
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
----- Original Message -----
From: "Yair Kurzion" <yair++at++polygon.engr.sgi.com>
To: "Joaquín Casillas" <jcasilla++at++isoco.com>
Cc: <info-performer++at++sgi.com>
Sent: Tuesday, March 25, 2003 10:27 PM
Subject: Re: [info-performer] pfDoubleDCS & isects
Hello Joaquin !
> 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.
Do your channels share a position (multiple cameras pointing at different
directions but sharing their x,y,z coordinates) ? If this is true, then you
can use the pfChannel viewing matrix to store the rotation (direction)
component of the view and the pfDoubleDCS nodes to store the translation
component.
If the cameras are completely independent, you can create a pfDoubleDCS for
each pfChannel and hang it at the top of the scene graph. Hang the rest of
the
scene under each of the four pfDoubleDCS nodes. Performer supports
instancing
so a node may have more than one parent.
When running intersection, compute your segments in the coordinate system of
one of the channels (origin == camera position), and use that channel for
the
intersection call.
Note: I wouldn't modify the pfDoubleDCS nodes in the a DRAW callback
because
the modified matrix isn't visible to the CULL process. Your culling may be
incorrect.
-yair
>
> 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
> -----------------------------------------------------------------------
>
>
> -----------------------------------------------------------------------
> 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 : Wed Mar 26 2003 - 09:44:34 PST