【发布时间】:2016-11-06 12:49:56
【问题描述】:
我见过几个 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 的一次加法和一次乘法。我想我会这样做的。
【问题讨论】:
-
它是起点和终点之间的简单线性插值。看起来很漂亮。
标签: math vector graphics algebra lerp