我做了很多关于这个主题的研究,但没有找到我正在寻找的确切答案,也许没有一个完美的解决方案......我想知道如何进行3D碰撞检测电子游戏。
最好使用像球体和盒子这样的碰撞体积并检查交叉点,还是有一种更简单的方法,比如比较物体的位置和矢量以了解它们是否相交?
答案 0 :(得分:1)
这是一个模糊的问题。这完全取决于你实际上做了什么。如果它是一个盒子,你检查两侧之间相对于中心的collsions。想想看,你用球体(半径)做同样的事情。
同样值得注意的是,碰撞是一件容易的事情,它是你想要碰撞的物体在硬碰撞后做的事情,也是形状发挥作用的时候。即,球体和方形碰撞将对球体和球体起不同的作用。
一个好方法是在一个轴上对抗碰撞然后移动到另一个轴上。不要让自己难过。
在此之后,值得买一本关于一般游戏编程的书并通过它来完成它然后你可以看到你最好的方法是做什么。
希望这有帮助
答案 1 :(得分:0)
这不一定是最快的答案,但是一个完全证明算法是有两个区域由多变量函数(xyz)表示,如果它在区域中则返回1,否则为0,将它们相乘,然后查看是否为积分整个空间都是非零的。
如果碰撞是基于点的,只需使用基于true和false的函数值。
只要您可以计算积分,这将在100%的时间内起作用...
我将使用的另一个选项是扩展函数区域的边缘,以便仅需要点检测。准备大量的分段功能。