Have you set the data variance of the Uniform object -- and the containing StateSet object -- to Object::DYNAMIC?
Tim On Wed, Dec 1, 2010 at 7:15 PM, Thorsten Roth <[email protected]>wrote: > Hi, > > I currently have a problem with a shader update callback I do not > understand. I have a vertex and fragment shader which calculate linear depth > in [0,1] for me, also respecting dynamic clipping planes. To achieve this, I > pass zNear and zFar as uniform parameters to the shader. To have them > updated, I have the following callback methods (zFar is looking > accordingly): > > class UpdateShaderZNear: public osg::Uniform::Callback { > public: > virtual void operator()(osg::Uniform* uniform, osg::NodeVisitor* nv) > { > double x, zNear; > viewer->getCamera()->getProjectionMatrixAsPerspective(x,x,zNear,x); > uniform->set((float)zFar); > } > }; > > Now when I move my camera towards and away from the object, it seems like > the shader update is one frame (or so) "too late", as I get values that do > not correspond to the [0,1]-normalization and the problem disappears as soon > as the camera stops. > > Is there any reason for that/does anyone have an idea what I'm doing wrong? > If more information or code is necessary, just tell me :-) > > -Thorsten > _______________________________________________ > osg-users mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org >
_______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

