osgEarth上标注之类的鼠标拾取操作和osg的鼠标相交检测拾取不太一样,原因如下
翻译过来大概就是,PlaceNode和其它的标注类型不是在通常的场景图空间中渲染的,而是作为屏幕空间的叠加层来渲染的,不能通过相交检测获取到;
osgEarth上的鼠标拾取操作可以参考osgEarth_pick这个例子。
有一个要注意的问题是,加载.earth文件中的标注都可以拾取到,但是代码里添加的标注却拾取不到,解决办法是针对添加的标注,需要调这么个函数:
osgEarth::Registry::objectIndex()->tagNode(placeNode, owner);
如:osgEarth::Registry::objectIndex()->tagNode(tempPlaceNode, tempPlaceNode);
参考:http://forum.osgearth.org/Solved-Pick-PlaceNode-td7591969.html