[osg-users] Problem blending multiple render passes

antiro black antiro42 at gmail.com
Sat Sep 9 02:45:10 PDT 2017


Hi,

I'm trying to compute the effect of multiple lights in a deferred shading setup. The subgraph of my scenegraph which is supposed to take care of this consists of a root node with a number of RTT cameras as children. All cameras are configured to write the effect of a single light to the exact same output texture.
On the root node I have (tried to) enable blending so the output texture will contain a combination of all the lighting that is computed, however, when I run the code, it only contains the lighting information of the last child camera (i.e. It is overwriting the output texture instead of blending it)

I have set up blending at the root node as follows:

Code:
auto passState=m_pointLightRoot->getOrCreateStateSet();
	passState->setMode(GL_BLEND, osg::StateAttribute::ON | osg::StateAttribute::OVERRIDE);
	passState->setMode(GL_DEPTH_TEST, osg::StateAttribute::OFF);
	osg::BlendFunc *blendFunc = new osg::BlendFunc(GL_ONE,GL_ONE);
	osg::BlendEquation *blendEqn = new osg::BlendEquation(osg::BlendEquation::Equation::FUNC_ADD);
	passState->setAttributeAndModes(blendFunc,osg::StateAttribute::ON |osg::StateAttribute::OVERRIDE);
	passState->setAttributeAndModes(blendEqn,osg::StateAttribute::ON |osg::StateAttribute::OVERRIDE);




Is there something wrong with the way I set up blending? Or with my approach of having the different cameras as children of the root?

Thank you!

Cheers,
antiro

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=71679#71679







More information about the osg-users mailing list