[osg-users] fadeIn and Out with blendcolor

Robert Osfield robert.osfield at gmail.com
Wed Sep 10 03:44:44 PDT 2008


Hi Deiter,

>From the screenshot It looks to me like you have an depth ordering
issue with transparency.  This is a standard problem with rendering of
any transparent objects in your scene - you basically have to drawn
opaque objects first, then all transparent objects sorted in depth.
In your case you objects are overlapping so you have a problem that
can't easily be tackled by simply putting the objects in the
transparent bin - you'll need to break them up into small parts to get
the depth sorting fine grained enough to fix the ordering.

Robert.

On Wed, Sep 10, 2008 at 9:51 AM, Dieter Pfeffer
<dieter.pfeffer at nl.thalesgroup.com> wrote:
>
> Hi
> I am trying to fade one modell out and another one in; I am using blendfunc
> and blendcolor.
>
> However the first modell (when alpha is 0) cuts off the second  - see the
> attached images:
>
> a) first modell (dumptruck) cuts off the second
> b) the transparency is corret
>
> I suppose I use a wrong parameter, but I can't find it out - any idea?
>
>
>
> float currentAlpha = 0.0;
>
> void
> setAlphaBlendColor()
> {
>     if (blendFunc0 == 0)
>     {
>         blendFunc0 = new
> osg::BlendFunc(osg::BlendFunc::CONSTANT_ALPHA, osg::BlendFunc::ONE_MINUS_CONSTANT_ALPHA);
>         blendColor0 = new osg::BlendColor (osg::Vec4 (1.,1.,1.,0.));
>
>     if (loadedModel0.valid())  //dumptruck
>     {
>         loadedModel0 ->getOrCreateStateSet()->setAttributeAndModes
> (blendFunc0,osg::StateAttribute::ON);
>         loadedModel0 ->getOrCreateStateSet()->setAttributeAndModes
> (blendColor0,osg::StateAttribute::ON);
>     }
> }
>     if (blendFunc1 == 0)
>     {
>         blendFunc1 = new osg::BlendFunc(osg::BlendFunc::CONSTANT_ALPHA,
> osg::BlendFunc::ONE_MINUS_CONSTANT_ALPHA);
>         blendColor1 = new osg::BlendColor (osg::Vec4 (1.,1.,1.,0.));
>         if (loadedModel1.valid()) //plane
>         {
>             loadedModel1 ->getOrCreateStateSet()->setAttributeAndModes
> (blendFunc1,osg::StateAttribute::ON);
>             loadedModel1 ->getOrCreateStateSet()->setAttributeAndModes
> (blendColor1,osg::StateAttribute::ON);
>         }
>     }
>    if (loadedModel0.valid())
>     {
>         osg::Vec4 l_c;
>         l_c.set(1.,1.,1.,currentAlpha);
>
>         blendColor0->setConstantColor(l_c);
>     }
>     if (loadedModel1.valid())
>     {
>         osg::Vec4 l_c;
>         l_c.set(1.,1.,1.,1-currentAlpha);
>
>         blendColor1->setConstantColor(l_c);
>     }
> }
>
>
>
> Thanks
>
> Dieter
> Unclassified Mail
>
>
> ------------------------------------------------------------------------------------------------------------
> Disclaimer:
>
> If you are not the intended recipient of this email, please notify the
> sender and delete it.
> Any unauthorized copying, disclosure or distribution of this email or its
> attachment(s) is forbidden.
> Thales Nederland BV will not accept liability for any damage caused by this
> email or its attachment(s).
> Thales Nederland BV is seated in Hengelo and is registered at the Chamber of
> Commerce under number 06061578.
> ------------------------------------------------------------------------------------------------------------
>
>
> _______________________________________________
> 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