Totoro sent me his example earlier through a private message. 
His code in PM had additional changes ( to call dirtyTextureParams()
on each texture created in the code ). And that was my answer :

Hi totoro

I suppose that vNode in exeRowConvolution() is not the same node used as vNode 
in exeColumnConvolution().
If it is, then you are overriding texture attributes and uniforms in a vNode 
stateset.

If it is not the same node ( I guess it should not be the same node ), then you 
call
g_ConvolutionTempTex->bindToImageUnit() twice, which means that first call is 
overriden.

My case was using two different textures binding to the same image unit.
Your case is binding single texture to two different image units, which is not 
possible in OSG
because second call to osg::Texture::bindImageToUnit() overrides first.

For now it should be enough to bind g_ConvolutionTempTex to image unit 1 in 
both functions
and binding g_ConvolutionTex to image unit 2 ( but I didnt tested that solution 
- its only my guess.
Also - dont forget about uniforms ).

-- 
Pawel Ksiezopolski

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





_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org

Reply via email to