Hi Paul and Tim,

First thanks to Tim for being me to it, and providing a clearer
explanation.  Truth be told I would have to review the source code to
be doubly sure :-)

Paul, you explanation below looks reasonable to be.  A few things I'd add are:

   o OVERRIDE is effectively an instruction to ignore an attempts of
StateSet below it to set RenderBin's.

   o USE says to either use the RenderBinDetails to create a new
RenderBin in the rendering backend for the subgraph'
      geometry to be dropped, or to reuse a RenderBin already created
in the parents RenderBin for this purpose.

      The later reuse is important, consider the case of a transparent
bin, you want all transparent geometries to be placed
      into the same transparent bin, you don't want every geometry to
have its own transparent bin.  The reuse is chosen
      simply on whether that bin number is already allocated in its
parent RenderBin/Stage.

      If you have multiple RenderStage (such as when doing RTT) then
you'll have multiple transparent bins generated, as
      the parent RenderBin in this case would be a different
RenderStage, so the cull traversal will create a fresh RenderBin
      for each stage.

Robert.

On Jan 11, 2008 3:42 AM, Paul Martz <[EMAIL PROTECTED]> wrote:
> Thanks, Tim -- Now that I've had a closer look, let me regurgitate what you
> said. Tell me if it seems I'm missing something.
>
> CullVisitor encounters a Node, and it's StateSet bin mode is:
>
> - INHERIT: The CullVisitor does not change the current RenderBin, and
> continues traversal.
>
> - Not INHERIT (and no parent Node's StateSet had bin mode set to OVERRIDE):
> In this case, the CullVisitor creates (or reuses, if already created) a new
> RenderBin using the StateSet's bin number and name, then continues
> traversal.
>
> - OVERRIDE: The CullVisitor increments a counter to indicate that a parent
> Node's StateSet had bin mode OVERRIDE, then it continues traversal.
>
> Users should use INHERIT to have Drawables stored in the current RenderBin.
> Users should use USE or OVERRIDE to create a new RenderBin or change to a
> RenderBin previously created. The reason you'd want to use OVERRIDE is to
> suppress creation or switching to different RenderBins in the subgraph.
>
> Hm. Interesting. Let me sleep on this now and grow a few neural connections.
>
> Paul Martz
> Skew Matrix Software LLC
> http://www.skew-matrix.com
> 303 859 9466
>
>
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to