gpt4 book ai didi

3d - 无限锥面*AABB相交测试

转载 作者:行者123 更新时间:2023-12-04 12:00:33 25 4
gpt4 key购买 nike

我试图发现一种更快的算法来测试轴是否对齐 conical surface与轴对齐的边界框的体积相交。

我目前开发的算法如下:

cone, AABB, lines along 4 parallel edges, and intersection points

  • x = 0
  • 对于 AABB 的任何 4 个平行边中的每一个:
  • 将其线与锥体相交。
  • 如果交点在 AABB 内:
  • 返回真。
  • 如果交点位于 AABB 的特定一侧:
  • x += 1
  • 如果 x == 0 或 x == 4(所有交叉点都在 AABB 的一侧):
  • 返回假。
  • 返回真。

  • 谁能想到一个更有效的方法?通过计算每条线的交点,这似乎做了很多额外的工作。

    编辑:

    上面的算法不好,例如:

    cone hits untested axis of box

    圆锥只能以所有轴线交点都在一侧的方式与盒子的一条边相交,因此上述算法不起作用,除非所有边都经过测试或智能选择要测试的边(也许最靠近锥体的边缘?)。

    编辑 编辑:有关我后来发现的解决方案,请参阅下面我自己的答案,这对我来说几乎是最佳选择。

    最佳答案

    我找到了一个可能的最佳解决方案:

    沿 +-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) .

  • 如果结果间隔完全为负,则盒子完全在锥体内部。
  • 如果结果区间包含 0,则框与锥体表面相交。
  • 如果结果间隔完全为正,则该框完全在锥体之外。
  • 关于3d - 无限锥面*AABB相交测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4384652/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com