Re: [info-performer] Double DCS Question

New Message Reply Date view Thread view Subject view Author view

From: Radomir Mech (rmech++at++engr.sgi.com)
Date: 02/04/2003 18:28:49


Hi Eylon and Bob,

I found the problem. The man page is missing one extra point.

pfCuller keeps a stack of matrices as it descends the scene graph.
Single precision matrices are combined with double precision. If the
first matrix on the stack (the closest to the root) is double then all
subsequent computations will be done in double precision and cull will
never be performed. Even if you insert a single precision matrix
underneath a doubleSCS or doubleDCS as the man page suggests.

If the first matrix is of single precision the matrix on top of the
stack will be of the same type as the last matrix added to the stack.
If it is an SCS the matrix becomes of single type and cull is
performed.

Thus for the pfSCS trick to work you need also a pfSCS above all
doubleDCSs and doubleSCSs.
Moreover, the top pfSCS cannot be an identity so you have to add a
small translation. But it cannot be too small otherwise the matrix is
marked as identity. I tried 0.0001,0,0 and it works. 0.00001,0,0
doesn't. The bottom pfSCS just above the pfGeode or pfGroup can be
identity.

Keep in mind that you cannot insert any other single precision matrix
in the tree between the top pfSCS and the bottom one because then you
"demote" the current matrix on the stack to single precision and you
want to do it only after you apply all necessary doubleSCSs and
doubleDCDs.

I tried on the test case Bob sent me and it works there. Eylon, could
you try it and let me know whether it works for you as well?

Radomir

Eylon Shachar wrote:
>
> Hi All
> I am having troubles with DoubleDCS and Culling.
> I'm drawing a scene with many tiles in it.
> I've generated the tiles as explained in the documentation
> with a DoubleSCS in the root of each tile and right under it
> a regular SCS with Identity matrix.
> Right under the root of the scene I have a DoubleDCS.
> Everything seems to work fine except for the Culling.
> There seems to be no Culling done at all.
> In the statistics I always see many tris and verts.
> When I standing in one place their number does not change
> even when I am looking up to where there is no geometry.
> The Cull statistics always shows a lot of Nodes and
> GSets and there are always zero rejected.
> When running with multiple channels with different field of views, all the
> channels show the
> same high number of verts and tris.
> All of the above does not happen when I'm running without the
> doubleDCS and DoubleSCS.
> The simple workaround suggested of putting a pfSCS node
> does not seem to work. It seems that when I'm adding a
> doubleDCS no culling is done under it.
> Please help
> Thank you
>
> Eylon Shahar
> Head of Graphics Development Team
> BVR Systems (1998) Ltd.
> Tel. +972-3-900 8000 Ext. (8135)
> Fax. +972-3-900 8030
> E-mail: eylon++at++bvr.co.il
> Website: www.bvrsystems.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
> -----------------------------------------------------------------------


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Tue Feb 04 2003 - 18:29:56 PST

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