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
