射线对凸面物体的全局收敛性

时间:2016-03-03 16:14:25

标签: algorithm

在Gino Van Den Bergen的2004年论文Ray Casting against General Convex Objects with Application to Continuous Collision Detection中,他首先提出了一种天真的迭代方法来准备他的讨论:

Algorithm 1 An iterative method for performing a ray cast of a ray s+λr against
a convex object C. For positive results, this algorithm terminates with λ being the
hit parameter, x, the hit spot, and n, the normal at x.

λ ← 0;
x ← s;
n ← 0;
c ← “the point of C closest to x”;
while not “x is close enough to c” do
begin
    n ← x − c;
    if n · r ≥ 0 then return false
    else
    begin
        λ ← λ − (n · n)/(n · r);
        x ← s + λr;
        c ← “the point of C closest to x”
    end
end;
return true
然后他说:

  

属性λi&lt; λi+1≤λhit是必要的但尚不充分   全球趋同的条件。为了表明,如果是   命中,xi确实接近i→∞的命中点,我们需要证明这一点   从λi到λi+ 1的映射在所有λ<λhit处是连续的。

然而,对于至少实数,λ的序列单调增加并且在上面有界的事实是收敛的充分条件。我不确定为什么他需要证明连续性?

1 个答案:

答案 0 :(得分:0)

如果某个时刻存在奇点,那么λi+ 1可能会渐近逼近它,但永远无法超越它。对于精度有限的数字,它只是意味着λ将停止增加。

编辑:好吧我想我想出了一个类似算法可能无法收敛的例子。让我们假设我们的进步策略更加谨慎:一旦我们找到最接近的点c,我们将λ推进到最接近c的光线上的点,即λi+ 1 =λi - (n·r)/ 2,并且另外,物体不是完全凸起的,而是有一个洞: AB=AC

AB = AC,所以在A处有一个奇点。我们的新算法将接近A,但是永远不会到达它并且能够跳到C(因为它每次仅移动一半),然而λ将稳定地增加到任何一点。

编辑2:由于A是一个奇点,n·r实际上会在那里得到0,所以我不确定它是否会破坏参数:)也许不是如果我们确切地定义在A,C将被选中作为最接近的点而不是B