我试图发现一种更快的算法来测试轴是否对齐 conical surface与轴对齐的边界框的体积相交。
我目前开发的算法如下:
谁能想到一个更有效的方法?通过计算每条线的交点,这似乎做了很多额外的工作。
编辑:
上面的算法不好,例如:
圆锥只能以所有轴线交点都在一侧的方式与盒子的一条边相交,因此上述算法不起作用,除非所有边都经过测试或智能选择要测试的边(也许最靠近锥体的边缘?)。
编辑 编辑:有关我后来发现的解决方案,请参阅下面我自己的答案,这对我来说几乎是最佳选择。
最佳答案
我找到了一个可能的最佳解决方案:
沿 +-z 轴的单位右锥体开口的方程为 x^2 + y^2 - z^2 = 0
.
求x^2 + y^2 - z^2
的最大值和最小值在 AABB 上使用 interval arithmatic .提示:对于 x^2
,最小值为 clamp(0, [xmin, xmax])^2
最大值为 max(xmin^2, xmax^2)
.
关于3d - 无限锥面*AABB相交测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4384652/