我要解决的问题是为三角形和立方体的交集生成 AABB。在 2D 中,所需的体积是此处显示的绿色方块:
输入点和输出边界是 IEEE 浮点数。
我目前使用浮点的方法是将三角形剪辑到体素的每个面上,并绑定生成的多边形。但是,使用浮点意味着交点不精确,因此结果 AABB 可能没有完全限定交点区域。我需要一个保守的界限。
我研究了使用区间算术进行裁剪,但有两个潜在问题:
- 操作链的间隔可能会变大
- 条件取决于区间的分支是一团糟,结果可能不确定,这意味着两种可能性都需要计算。例如。如果(线穿过平面)
有没有更简洁的方法来做到这一点?也许某种方法来计算所需的 epsilon 以抵消最终结果?临时计算双精度并将最终浮点结果偏移 1ULP,希望双精度数学不会累积超过 28 位的错误。如果我能证明这一点,那就太好了。
有理算术可能是另一种选择,但是当输入可以跨越整个浮点范围时,我无法保证有足够的位。
有什么建议么?提前致谢。