之前想做个编辑器那样的,需要拾取功能,于是研究了下。
拾取模型用射线相交的方法。通过摄像机的getCameraToViewportRay把鼠标坐标转换成RAY,然后通过RaySceneQueryResult来进行场景查询,可以得到场景上所有与该射线相交的对象。然后取1个距离最近的相交对象作为拾取的对象,这样拾取的对象就获得了。为了显示该对象被拾取,获取下该MESH的BOUNDINGBOX,我偷懒用了Ogitor的Box绘制类,直接把获取到的BOUNDINGBOX设置上去,再在对象的父节点下创建个子节点,attachObject设置好的BOX,设置节点显示,然后就OK了。
下面是图片
拾取靴子模型:
拾取护腕模型:
拾取衣服模型: