我一直致力于在XNA中进行(某种程度上)更先进的碰撞检测(和滑动响应),它读取任何加载模型的VertexBuffer,并从其顶点(和索引)生成平面实例...更客观地定制面结构由一个代表实际面的主平面构成,另外三个代表其边界。
这样,当BoundingSphere与为每个3个顶点生成的BoundingBox相交时, 检查与面的主平面的另一个交点,之后,为了确保在三角形内发生碰撞,其他三个平面(与三角形边缘对齐)检查BoundingSphere不是外部。
到目前为止,我用复杂的网格得到了有趣的好结果,能够实时缩放,旋转和移动它们而不会在转换过程中破坏碰撞网格...但我相信我的问题在于面部所在的部分生成,因为我只得到正确 - 实际上接近完美 - 结果与组成网格的一半三角形,这也取决于它是什么网格。有几个随机的几何形状,我没有那个问题。
就像Face结构中的一个或多个平面的某些法线被翻转一样,导致BoundingSphere报告绝对没有与某些三角形碰撞...
在某个地方必须有一些小东西......否则我不会让球体已经与那些有效的三角形碰撞了......
现在我只想让这个小东西起作用,然后我会想到优化它......