Hi. Thanks a lot! I totally missed vec4 position when I tried to use only vec3 one with osg_ViewMatrixInverse.
2013/10/8 Marcel Pursche <[email protected]> > Hi, > > I don't know if you already found the solution to your problem, but this > is how you can calculate the camera position in worldspace: > > > Code: > > vec4 cameraPos_wordspace = osg_ViewMatrixInverse * vec4(0.0, 0.0, 0.0, > 1.0); > > > > > The rotation and scale factors can be found in the first three rows and > columns of a matrix, so if you only want to compute a rotation and scale it > is sufficient to use a 3x3 matrix. > But to mathematically compute a translation of a vector you need to use a > 4x4 matrix. The vector needs to be expanded to the 4th dimension, as-well > to make it compatible with the matrix for multiplication. > > Here is how it works: > > > Code: > > M * v = v' > <==> > 1 0 0 tx * x = 1*x + 0*y + 0*z + tx * 1 > 0 1 0 ty * y = 0*x + 1*y + 0*z + ty * 1 > 0 0 1 tz * z = 0*x + 0*y + 1*z + tz * 1 > 0 0 0 1 * 1 = 0*x + 0*y + 0*z + 1*1 > > > > (These are the rows of a matrix not individual equations, I wasn't able to > format it in a good way, sorry) > > no if we simplify this we get: > > Code: > > x+tx > = y+ty > z+tz > 1 > > > > > As we can see it all boils down to adding an offset the the original > vector. For the rest of your computations you can just ignore the w > component of the vector. > I hope I was able to shed some light on the dark ;) > Thank you! > > Cheers, > Marcel > > ------------------ > Read this topic online here: > http://forum.openscenegraph.org/viewtopic.php?p=56677#56677 > > > > > > _______________________________________________ > 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

