我見過一對夫婦的線性插值功能,主要用於lerping載體,他們似乎是這樣的:爲什麼這樣寫一個lerp函數:(1-bias)* start + bias * end;
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來說,這只是一個加法和一個乘法。我想我會這麼做的。
它是開始點和結束點之間的簡單線性插值。看起來漂亮。 – duffymo