The plug-in you used to load your model may behave differently and as a result the scene's bounding sphere center could have shifted .
2016-04-14 13:21 GMT+02:00 Robert Osfield <robert.osfi...@gmail.com>: > Hi Ronny, > > I don't recall any specific changes to view matrix management between > OSG-3.2.1 and OSG-3.4.0. I'm also not aware of any bugs being reported > that look relevant to this what you are describing. > > Printing out two sets of view matrices for the two versions without the > view's being identical isn't useful. Try to create the exactly same input > conditions - for instance by explictly setting the view matrix. The mouse > input are another variable you'd need to standardize. > > Also when describing the problem you'll need to do more than saying a > "vertical offset", this has so many different possible interpretations that > it's pointless even starting to guess what you mean. > > Robert. > > > > On 14 April 2016 at 12:02, Ronny Hatteland <ronnyhattel...@gmail.com> > wrote: > >> Hi, >> >> I have some code for doing picking of objects on the screen: >> >> >> Code: >> float dX = ea.getX(); >> float dY = ea.getY(); >> >> osg::ref_ptr<osg::Camera> camera = view->getCamera(); >> >> // compute model to window transform >> // Model*View*Projection*WindowMatrix >> osg::Matrixd matrix; >> matrix.postMult(camera->getViewMatrix()); >> matrix.postMult(camera->getProjectionMatrix()); >> osg::Matrixd windowMatrix = camera->getViewport()->computeWindowMatrix(); >> matrix.postMult(windowMatrix); >> >> osg::Matrixd inverse; >> inverse.invert(matrix); >> >> // get the coordinates in screen-space: >> osg::Vec3 mouseloc = osg::Vec3(dX, dY, 0) * inverse; >> osg::Vec3 normalizedMouseRay = (osg::Vec3(dX, dY, 1) * inverse) - >> mouseloc; >> osg::Plane _dragPlane(osg::Vec4d(0, 1, 0, 0)); >> >> >> Which was working perfectly fine in OSG 3.2.1. >> However, when I updated to OSG 3.4.0 a vertical offset was introduced, >> which seems to be constant regardless of the camera. >> >> Positioning the camera at approximately the same place in both cases, and >> looking at the matrices, it looks like the offset was introduced already by >> the getViewMatrix() method, value[3][3]: >> >> >> Code: >> matrix.postMult(camera->getViewMatrix()); >> 3.4.0: >> [0] {1.0000000000000000, 0.00000000000000000, 0.00000000000000000, >> 0.00000000000000000} >> [1] {0.00000000000000000, 0.00000000000000000, -1.0000000000000000, >> 0.00000000000000000} >> [2] {0.00000000000000000, 1.0000000000000000, 0.00000000000000000, >> 0.00000000000000000} >> [3] {-1009.2817596644163, 216.03970056772232, -509.02834880430618, >> 1.0000000000000000} >> 3.2.1: >> [0] {1.0000000000000000, 0.00000000000000000, 0.00000000000000000, >> 0.00000000000000000} >> [1] {0.00000000000000000, 0.00000000000000000, -1.0000000000000000, >> 0.00000000000000000} >> [2] {0.00000000000000000, 1.0000000000000000, 0.00000000000000000, >> 0.00000000000000000} >> [3] {-1061.2815714627504, 239.85043859481812, -599.72003111232948, >> 1.0000000000000000} >> >> matrix.postMult(camera->getProjectionMatrix()); >> 3.4.0: >> [0] {1.7748398086904795, 0.00000000000000000, 0.00000000000000000, >> 0.00000000000000000} >> [1] {0.00000000000000000, 0.00000000000000000, 1.0000000000000200, >> 1.0000000000000000} >> [2] {0.00000000000000000, 3.8461539872299335, 0.00000000000000000, >> 0.00000000000000000} >> [3] {-1791.3134452375832, 830.92195573850609, 509.02834880411638, >> 509.02834880430618} >> 3.2.1 >> [0] {1.7748398086904795, 0.00000000000000000, 0.00000000000000000, >> 0.00000000000000000} >> [1] {0.00000000000000000, 0.00000000000000000, 1.0000000000000200, >> 1.0000000000000000} >> [2] {0.00000000000000000, 3.8461539872299335, 0.00000000000000000, >> 0.00000000000000000} >> [3] {-1883.6047812616794, 922.50172074030797, 599.72003111214144, >> 599.72003111232948} >> >> WindowMatrix >> 3.4.0: >> [0] {960.00000000000000, 0.00000000000000000, 0.00000000000000000, >> 0.00000000000000000} >> [1] {0.00000000000000000, 443.00000000000000, 0.00000000000000000, >> 0.00000000000000000} >> [2] {0.00000000000000000, 0.00000000000000000, 0.50000000000000000, >> 0.00000000000000000} >> [3] {960.00000000000000, 581.00000000000000, 0.50000000000000000, >> 1.0000000000000000} >> 3.2.1 >> [0] {960.00000000000000, 0.00000000000000000, 0.00000000000000000, >> 0.00000000000000000} >> [1] {0.00000000000000000, 443.00000000000000, 0.00000000000000000, >> 0.00000000000000000} >> [2] {0.00000000000000000, 0.00000000000000000, 0.50000000000000000, >> 0.00000000000000000} >> [3] {960.00000000000000, 443.00000000000000, 0.50000000000000000, >> 1.0000000000000000} >> >> matrix.postMult(windowMatrix); >> 3.4.0: >> [0] {1703.8462163428603, 0.00000000000000000, 0.00000000000000000, >> 0.00000000000000000} >> [1] {960.00000000000000, 581.00000000000000, 1.0000000000000100, >> 1.0000000000000000} >> [2] {0.00000000000000000, 1703.8462163428605, 0.00000000000000000, >> 0.00000000000000000} >> [3] {-1230993.6925759460, 663843.89704746008, 509.02834880421130, >> 509.02834880430618} >> 3.2.1 >> [0] {1703.8462163428603, 0.00000000000000000, 0.00000000000000000, >> 0.00000000000000000} >> [1] {960.00000000000000, 443.00000000000000, 1.0000000000000100, >> 1.0000000000000000} >> [2] {0.00000000000000000, 1703.8462163428605, 0.00000000000000000, >> 0.00000000000000000} >> [3] {-1232529.3601433760, 674344.23607071838, 599.72003111223546, >> 599.72003111232948} >> >> inverse >> 3.4.0: >> [0] {0.00058670300251959689, 1.0310124207250091e-007, >> 4.3757801540539190e-008, -2.0254518695206543e-010} >> [1] {0.00000000000000000, 0.00000000000000000, 0.00058690742768229540, >> 0.00000000000000000} >> [2] {-10086449333416.564, 5087071672824.5107, 2159033860383.4014, >> -9993690301.8739624} >> [3] {10086449333416.104, -5087071672823.5625, -2159033860383.7642, >> 9993690301.8740635} >> 3.2.1 >> [0] {0.00058743635625737895, -2.9889246175079844e-007, >> -1.1953825839478168e-007, 4.9838665751483716e-010} >> [1] {0.00000000000000000, 0.00000000000000000, 0.00058690742768229540, >> 0.00000000000000000} >> [2] {-10634237608903.178, 6009305617996.5537, 2403345750271.9492, >> -10020184930.042784} >> [3] {10634237608902.719, -6009305617995.6123, -2403345750272.2324, >> 10020184930.042881} >> >> >> Is this a bug or is there a reason why this is different between the two >> versions? >> >> Thank you! >> >> Cheers, >> Ronny[/code] >> >> ------------------ >> Read this topic online here: >> http://forum.openscenegraph.org/viewtopic.php?p=66808#66808 >> >> >> >> >> >> _______________________________________________ >> osg-users mailing list >> osg-users@lists.openscenegraph.org >> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org >> > > > _______________________________________________ > osg-users mailing list > osg-users@lists.openscenegraph.org > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > >
_______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org