osg碰撞检测与目标拾取
本文展示了一种osg中当前视图下碰撞检测和目标拾取的方法。展示碰撞检测的编码流程:1)首先继承osgGA::GUIEventHandler类,响应事件;2)然后创建osgUtil::LineSegmentIntersector和osgUtil::IntersectionVisitor得到碰撞检测访问器;3)最后借助visitor模式,由2)中创建的访问器,访问需要进行碰撞检测的节点。当然本文采用一种更方便的方法,借用osgViewer::view中的computeIntersections函数,计算当前视图下鼠标点击与模型的交点以及拾取的对应的osg::Drawable,computeIntersections函数是对2)和3)的封装,其中创建的osgUtil::IntersectionVisitor访问器是对主相机的访问。
本文主要解决以下问题:
- osg碰撞检测的实现
- osgUtil::LineSegmentIntersector::Intersections结构体分析
- osg目标拾取的思路
目录
- 1 前言
- 2 osg碰撞检测实现
- 3 Intersections结构体分析
内容
- 1 前言
opengl中的碰撞检测描述了一条矢量线与目标模型之间的交点,其应用场景为点云拾取、模型拾取等,通过屏幕鼠标点击,从而获取鼠标点击所获取的当前