Hi, I want to find point of intersection with the scene at the location pointed by mouse using depth buffer. I have attached an image to the camera for getting the depth buffer values per frame using code mentioned below and i am to read the information of the depth buffer properly ========================================================= image = new osg::Image(); camera = viewer->getCamera(); camera->attach(osg::Camera::DEPTH_BUFFER,image); image->allocateImage(1280, 1024, 1, GL_LUMINANCE, GL_FLOAT); =========================================================
I have created my custom GUIEventHandler for this purpose. In the handle function i am getting the mouse coordinates using ea.getX() and ea.getY(). After getting the mouse coordinates this is what i am doing // Get all the matrix required for inverse transformation osg::Matrixd projMatrix = camera->getProjectionMatrix(); osg::Matrixd viewMatrix = camera->getViewMatrix(); osg::Matrixd windowMatrix = camera->getViewport()->computeWindowMatrix(); // Get depth value from the image float depth =(float ) (* image->data(ea.getX(), ea.getY())); // Create a point osg::Vec3 point(x,y,depth); // Apply inverse transformation to get the local coordinates of the intersected point point = point*osg::Matrixd::inverse(windowMatrix); point = point*osg::Matrixd::inverse(projMatrix); point = point*osg::Matrixd::inverse(viewMatrix); To verify the point am drawing an quad at the location using osg::ref_ptr<osg::Vec3Array> vert (new osg::Vec3Array); vert->push_back(osg::Vec3(point.x()-0.1,point.y(),point.z()-0.1)); vert->push_back(osg::Vec3(point.x()-0.1,point.y(),point.z()+0.1)); vert->push_back(osg::Vec3(point.x()+0.1,point.y(),point.z()+0.1)); vert->push_back(osg::Vec3(point.x()+0.1,point.y(),point.z()-0.1)); geometry->setVertexArray(vert.get()); The quad is drawn at proper location in x,z but in y(OSG y direction) direction it is getting translated. I am not able to understand what i am doing wrong cam somebody tell me what is the problem in my approach ? Thanks in advance Cheers Sumit _______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org