[osg-users] Which matrix decides the world position of the vertex
robert.osfield at gmail.com
Tue Jul 1 01:46:56 PDT 2008
Could it be that you have been confused by the pre-multiple convention
of OSG maths, and post-multiple convention of GLSL maths, the opposing
conventions has turned out to be rather unfortunate, the OSG's
convention fitted we will other tools in it's early days, but alas
GLSL came along later and cemented the opposite convention. So in
OSG land you have:
v' = v * M
v' = M * v
I would ideally like to wave a magic wand and have all the OSG and
user code moved across to the GLSL convention, but alas doing this in
practice would break lots of code.
On Tue, Jul 1, 2008 at 9:30 AM, guilianzhang <guilianzhang at 163.com> wrote:
> This problem has confused me for a long time, I have made a lot of effort to
> get the matrix which translate the vertex from local coordinate to world
> space coordinate in osg, however, the result seems that the matirx I get
> from MatrixTransform does not work in glsl.
> Though it seems that I can get the world position of the vertex through
> osg_ViewMatrixInverse combined with gl_ModelViewMatrix, but I think it is
> not advisable for there are so much instructions for vertex shader.
> I build the indoor scene using osg2.4. Each object added to the scene is
> added to a MatrixTransform(mt) node which containing all the information of
> translation,rotation and so on, this MatrixTransform node is then added to
> the root. I send the matrix(ModelWorld = mt->getMatrix()) to the vertex
> shader to get the world position of the vertex, but the result of gl_Vertex
> * ModelWorld in glsl seems not the world position of the vertex.
> Any informations about this will be appreciated.
> Thanks very much for your help!
> osg-users mailing list
> osg-users at lists.openscenegraph.org
More information about the osg-users