[osg-users] RenderingHint vs binNumber(RenderBinDetails)

Robert Osfield robert.osfield at gmail.com
Thu Oct 4 03:31:04 PDT 2007


Hi Christophe,

The definitive answer comes from the source:

void StateSet::setRenderingHint(int hint)
{
    _renderingHint = hint;
    // temporary hack to get new render bins working.
    switch(_renderingHint)
    {
        case(TRANSPARENT_BIN):
        {
            _binMode = USE_RENDERBIN_DETAILS;
            _binNum = 10;
            _binName = "DepthSortedBin";
            break;
        }
        case(OPAQUE_BIN):
        {
            _binMode = USE_RENDERBIN_DETAILS;
            _binNum = 0;
            _binName = "RenderBin";
            break;
        }
        default: // DEFAULT_BIN
        {
            setRenderBinToInherit();
            break;
        }
    }
}

Which shows that setting rendering bin number *and* bin name is
equivalent, but not bin number alone.

Robert.

On 10/4/07, Christophe Medard <christophe.medard at oktal.fr> wrote:
>
>
> Hi all,
>
> There's something I can't get a clear vision of despite my efforts.
> To parameterize order of drawing, there are two levers : renderingHint (set
> on a node or drawable through it's stateset
> osg::StateSet::setRenderingHint()) and binnumber (set on a
> node or drawable through it's stateset
> osg::StateSet::setRenderBinDetails()).
>
> I still have two interrogations :
>
> - what is the difference (or should i say level of priority) between
> renderingHint and binnumber ? *
> - there seems to be no notion of inheritance (like there is on a
> stateattribute typically) for those renderhint or renderbindetail features :
> if you set a rendering order (through one or the other feature) on a group
> node, does that rendering order affect the whole subgraph (understand
> children and children of children) ? What happens if a renderhint or
> renderdindetail is set again on one child ?
>
> Thanks to anyone capable of clearing that because after different attemps
> for different purposes, in some cases I succeded to obtain what I wanted, in
> some cases I didn't, and I'm ending kinda confused on that.
>
> Cheers,
>
> --
> Christophe Médard
> Société OKTAL (http://www.oktal.fr)
> 2 impasse Boudeville
> 31100 Toulouse (France)
> Tél. : (+33) 5 62 11 50 10
> Fax : (+33) 5 62 11 50 29
>
>
> * There must be a difference between the two since they aren't linked
> together : setting TRANSPARENT_BIN isn't equivalent to binDetails = 10
> because you can do
> osg::StateSet::setRenderingHint(OPAQUE_BIN) and
> osg::StateSet::setRenderBinDetails(10), it's valid.
> Saying that I point out that the order of those two calls is important for
> if you make  osg::StateSet::setRenderBinDetails(10) and
> osg::StateSet::setRenderingHint(OPAQUE_BIN) your binnumber
> is 0 !!
> Is that a bug ?
>
>
>
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>



More information about the osg-users mailing list