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
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org