[osg-users] problem with picking/intersecting in window space

Andreas Mueller andiadb at gmx.de
Sat Jun 9 04:19:02 PDT 2018


I have a problem with picking via an intersector in window space.
For picking I use the following code:

osgUtil::LineSegmentIntersector* pIntersector = new osgUtil::LineSegmentIntersector(osgUtil::Intersector::WINDOW, x, y);
osgUtil::IntersectionVisitor iv(pIntersector);

If I zoom in then it happens that I can not pick elements just in front of me near the eye position.
It seems that some (near plane) clipping/culling happens in the intersector while the rendering uses another near plane for clipping.
The camera uses the default COMPUTE_NEAR_FAR_USING_BOUNDING_VOLUMES mode.

For testing purposes, I set in the camera the DO_NOT_COMPUTE_NEAR_FAR mode. Then I noticed near plane clipping when zooming in (that I don't have in COMPUTE_NEAR_FAR_USING_BOUNDING_VOLUMES mode) but I can pick all elements that are rendered.

So I guess the intersector don't use the automatically computed near/far clipping planes of the camera (if in COMPUTE_NEAR_FAR_USING_BOUNDING_VOLUMES mode) for the conversion of the intersector line segment coordinates from window to world space where the intersection is actually done. 
Is this correct? And what do I have to do to be able to pick all elements that are rendered with the COMPUTE_NEAR_FAR_USING_BOUNDING_VOLUMES mode?

Thank you!


Read this topic online here:

More information about the osg-users mailing list