Bro*_*olf 2 physics ogre3d collision-detection
我有一个球体,我从相机的位置拍摄,然后使用相机的前向矢量沿着相机朝向的方向移动.
我想知道如何检测球体和另一个网格之间的碰撞点.
如何使用MOC或OGRE检查两个网格之间的碰撞点?
更新:本来应该提到这个.我无法使用第三方物理库,因为我需要自己开发(uni项目).
这里公认的解决方案不起作用.如果网格密度通常足够高,使得网格上没有两个点比碰撞球体的直径更远,那么它甚至可以工作.想象一下在huuuge立方体网格上随机向量上的短距离发射的小球体.立方体网格只有8个顶点.立方体实际上会击中这8个顶点之一的几率是多少?
这确实需要通过每个多边形碰撞来完成.你需要能够检查多边形和一个球体的交叉点(如果你想避免隧道效应,还需要一个圆柱体,如同提到的加速器).这个在线和书籍形式有相当多的资源,但http://www.realtimerendering.com/intersections.html可能是一个有用的起点.
关于优化的评论很好.早期机会(可能是对网格的边界球或轴对齐的边界体积进行快速检查)是必不可少的.即使你已经确定自己在一个边界体积内,也许能够从潜在候选者列表中清除不太可能的多边形(太远,面向错误的方向等)可能是个好主意.