数学 – 检查点积是否接近0时,epsilon应该有多大?

检查点积是否接近0时,epsilon应该有多大?

我正在研究光线追踪项目,我需要检查点积是否为0.但是
这可能永远不会发生,所以如果它的值很小,我想把它当作0
区域[-eps,eps],但我不确定eps应该有多大?

谢谢

最佳答案 由于您将此描述为光线跟踪项目的一部分,因此您所需的准确度可能由场景的“世界坐标”决定,或者甚至可能由转换它们的屏幕坐标决定.这些中的任何一个都会为计算中的绝对误差提供可接受的目标.

有可能从那里回溯到你正在进行的中间计算所需的精度,例如形成一个“理论上”为零的内积.例如,您可能试图在两个平滑体之间找到最短路径(反射光),并且内积(垂直度)的消失给出了点的位置.

在这样的情况下,内积可能是您寻找的未知数(点的位置)的二次方.未知数可能形成“双根”(多重性2的零),使得该根的位置对内积的计算特别敏感为零.

对于这种情况,您可能希望在内部产品中获得大约两倍的位数“零”,这是位置精度所需要的.基本上,内部产品变化非常缓慢,位置在双根附近.

但是你的申请可能不那么敏感;分析所涉及的算法是必要的,以给你一个很好的答案.作为一般规则,我以双精度执行内积,以获得单精度可能可靠的答案,但如果要实时进行光线跟踪,这可能成本太高.

点赞