保守的AABB用于体素 - 三角形交叉

时间:2016-01-07 10:44:47

标签: floating-point geometry rounding-error interval-arithmetic

我想解决的问题是为三角形和立方体的交叉生成AABB。在2D中,所需的体积是此处显示的绿色方块: enter image description here

输入点和输出范围是IEEE float。

我当前使用浮点的方法是将三角形剪切到体素的每个面,并绑定得到的多边形。但是,使用浮点意味着交点不精确,因此可能是生成的AABB未完全绑定交叉区域的情况。我需要保守的约束。

我研究了使用区间算法进行裁剪,但有两个潜在的问题:

  • 对于业务链而言,间隔可能会变得很大
  • 条件取决于间隔的分支是一团糟,结果可能是不确定的,这意味着两种可能性都需要计算。例如。如果(线穿过平面)

有更简洁的方法吗? 也许某种方式来计算所需的epsilon以抵消最终结果?为了计算双倍并且最终浮动结果偏移1ULP,希望双数学不会累积> 28位的误差。如果我能证明这一点会很好。

有理算术可能是另一种选择,但是当输入可以跨越整个浮点范围时,我无法保证如何保证有足够的位。

有什么建议吗? 提前谢谢。

0 个答案:

没有答案