截头锥体相交

时间:2019-01-30 17:03:10

标签: unity3d geometry arcore frustum

我正在尝试找到一种方法来确定两个视锥面是否相交,如果相交,则确定相交的大小(例如,如果两个视锥面位于完全相同的位置,则相交为100%;如果它们不接触,则为0%) )。

我有关于两个圆锥体的位置,体积和各种数据,我只是不知道如何使用它。我查看了用于碰撞检测的“分离轴定理”,但我无法确切确定它是否正是我要寻找的。

有人对前进的方向有什么建议吗?

1 个答案:

答案 0 :(得分:1)

SAT只会告诉您他们是否在触摸。它无法为您提供百分比重叠。要计算视锥重叠率,我认为您需要计算通过与视锥相交并除以“主”视锥的体积而生成的Poyhedron的体积。

计算视锥的相交会告诉您它们是否重叠。一种方法是在每个bsp中构建一个bsp,然后执行CSG交叉操作。

一旦有了交叉多面体,就可以通过将其分成四面体并将所有四面体的体积相加来计算其体积。那里有学术论文直接从BSP表示中进行四面体化。