|
In computer graphics, Slerp is shorthand for spherical linear interpolation, introduced by Ken Shoemake in the context of quaternion interpolation for the purpose of animating 3D rotation. It refers to constant-speed motion along a unit-radius great circle arc, given the ends and an interpolation parameter between 0 and 1. ==Geometric Slerp== Slerp has a geometric formula independent of quaternions, and independent of the dimension of the space in which the arc is embedded. This formula, a symmetric weighted sum credited to Glenn Davis, is based on the fact that any point on the curve must be a linear combination of the ends. Let ''p''0 and ''p''1 be the first and last points of the arc, and let ''t'' be the parameter, 0 ≤ ''t'' ≤ 1. Compute Ω as the angle subtended by the arc, so that , the ''n''-dimensional dot product of the unit vectors from the origin to the ends. The geometric formula is then : The symmetry can be seen in the fact that = . In the limit as Ω → 0, this formula reduces to the corresponding symmetric formula for linear interpolation, : A Slerp path is, in fact, the spherical geometry equivalent of a path along a line segment in the plane; a great circle is a spherical geodesic. More familiar than the general Slerp formula is the case when the end vectors are perpendicular, in which case the formula is . Letting , and applying the trigonometric identity , this becomes the Slerp formula. The factor of in the general formula is a normalization, since a vector ''p''1 at an angle of Ω to ''p''0 projects onto the perpendicular ⊥''p''0 with a length of only . Some special cases of Slerp admit more efficient calculation. When a circular arc is to be drawn into a raster image, the preferred method is some variation of Bresenham's circle algorithm. Evaluation at the special parameter values 0 and 1 trivially yields ''p''0 and ''p''1, respectively; and bisection, evaluation at ½, simplifies to , normalized. Another special case, common in animation, is evaluation with fixed ends and equal parametric steps. If ''p''''k''−1 and ''p''''k'' are two consecutive values, and if ''c'' is twice their dot product (constant for all steps), then the next value, ''p''''k''+1, is the reflection . 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Slerp」の詳細全文を読む スポンサード リンク
|