我有两个酉向量P
和Q
笛卡尔坐标。我需要一种非常快速的方法来知道两者之间的角度是否小于某个量A
。我能想到的最好方法是:
if(acos(dot(P, Q)) < A)
cull();
else
draw();
或者,相反:
if(dot(P, Q) > cos(A))
cull();
else
draw();
角度越大,其余弦越小。它用于剔除算法。如果角度小于 A(视野外),则不会绘制对象,因此,少量的假阴性是可以接受的(我偶尔可以向 GPU 发送视野外的东西),但是误报不是(我不能避免在视野内渲染某些东西)。
最快的方法是什么?我能比现在做得更好吗?