我见过几个 lerp 函数,主要用于 lerp 向量,它们看起来像这样:
vector lerp(float bias, vector start, vector end)
{ return (1-bias) * start + bias * end; }
而我天真的做法是:
vector lerp(float bias, vector start, vector end)
{ return (end - start) * bias + start;
下面显示了这两种方法的细分:
two float by vector multiplications | one vector addition | one float subtraction |
one float by vector multiplication | one vector addition and one vector subtraction |
简而言之,这意味着:
6 float multiplications | 3 additions | one float subtraction
3 float multiplications | 6 additions |
我是否混合并且错误地认为这些是等效的?我有时会在简单的数学概念上挣扎。
编辑:我刚刚意识到,在我的情况下,我需要一个中途的 lerp,通过获取两个向量分量的平均值来完成更便宜。这只是每个轴 X、Y、Z 的一次加法和一次乘法。我想我会这样做。