vec4 worldVert = osg_ViewMatrixInverse * gl_ModelViewMatrix * gl_Vertex; ...where osg_ViewMatrixInverse is a built-in OSG uniform (type mat4).
Just be aware: GLSL is single-precision, so you will lose some precision doing this. Glenn Waldron / @glennwaldron On Wed, Dec 19, 2012 at 3:03 PM, Ethan Fahy <[email protected]> wrote: > Hello all, > > I would like to have access to vertex world coordinates in my GLSL vertex > shader that is attached to an osg::Node. In GLSL the Model Matrix and the > View Matrix are combined into the ModelViewMatrix, so you cannot get access > to the Model Matrix without either passing in the Model Matrix itself or > the Inverse View Matrix (which could be multiplied by the ModelViewMatrix > to get the Model Matrix). I am familiar with how to attach an osg::Uniform > to pass uniforms into the shader; my question is, what is the best way to > obtain either the Model Matrix or the Inverse View Matrix from a given > osg::Node? > > I think I may be able to use osg::getLocalToWorld() to obtain the Model > Matrix? > > I have read through this thread: > > http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/2008-April/009903.html > but it doesn't really arrive at a satisfying conclusion and may or may not > be out of date. Any advice is appreciated. Thanks, > > -Ethan > > ------------------ > Read this topic online here: > http://forum.openscenegraph.org/viewtopic.php?p=51639#51639 > > > > > > _______________________________________________ > 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

