Unity_Lesson

線形補間(Linear Interpolation)と球面線形補間(Spherical Linear Interpolation, Slerp)


線形補間 (Linear Interpolation)

線形補間は、2つの点の間を直線的に補間する方法です。補間のパラメータ $ t $ を使って、2つの値の間の値を計算します。

計算式

線形補間は次のように定義されます。

$ L(p) = (1 - p) \cdot A + p \cdot B $

$ L(0.5) = (1 - 0.5) \cdot 0 + 0.5 \cdot 10 = 5 $

この結果から、$ p = 0.5 $ のとき、$ A $ から $ B $ の間の中間点(5)が得られます。




球面線形補間 (Spherical Linear Interpolation, Slerp)

球面線形補間は、2つのクォータニオンやベクトルの間を球面上で補間する方法です。通常、回転を補間するために使われます。

計算式

球面線形補間は次のように定義されます。

$ \text{Slerp}(A, B, t) = \frac{\sin((1 - t) \theta)}{\sin(\theta)} A + \frac{\sin(t \theta)}{\sin(\theta)} B $

角度の計算

角度 $ \theta $ は次のように計算されます。

$ \theta = \cos^{-1}(A \cdot B) $

  1. $ \theta $ を計算します。
  2. 上記のSlerpの式に代入します。

この結果として、( A ) から ( B ) までの球面上の補間点が得られます。