Slerp
   HOME

TheInfoList



OR:

In
computer graphics Computer graphics deals with generating images with the aid of computers. Today, computer graphics is a core technology in digital photography, film, video games, cell phone and computer displays, and many specialized applications. A great de ...
, 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 In mathematics, the dot product or scalar productThe term ''scalar product'' means literally "product with a scalar as a result". It is also used sometimes for other symmetric bilinear forms, for example in a pseudo-Euclidean space. is an alge ...
of the unit vectors from the origin to the ends. The geometric formula is then : \operatorname(p_0,p_1; t) = \frac p_0 + \frac p_1. The symmetry lies in the fact that . In the limit as Ω → 0, this formula reduces to the corresponding symmetric formula for
linear interpolation In mathematics, linear interpolation is a method of curve fitting using linear polynomials to construct new data points within the range of a discrete set of known data points. Linear interpolation between two known points If the two known poi ...
, : \operatorname(p_0,p_1; t) = (1-t) p_0 + t p_1.\,\! 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 Jack Elton Bresenham (born 11 October 1937, Clovis, New Mexico, US) is a former professor of computer science. Biography Bresenham retired from 27 years of service at IBM as a Senior Technical Staff Member in 1987. He taught for 16 years at Wint ...
'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 .


Quaternion Slerp

When Slerp is applied to unit quaternions, the quaternion path maps to a path through 3D rotations in a standard way. The effect is a rotation with uniform angular velocity around a fixed
rotation axis Rotation around a fixed axis is a special case of rotational motion. The fixed-axis hypothesis excludes the possibility of an axis changing its orientation and cannot describe such phenomena as wobbling or precession. According to Euler's rot ...
. When the initial end point is the identity quaternion, Slerp gives a segment of a one-parameter subgroup of both the Lie group of 3D rotations,
SO(3) In mechanics and geometry, the 3D rotation group, often denoted SO(3), is the group of all rotations about the origin of three-dimensional Euclidean space \R^3 under the operation of composition. By definition, a rotation about the origin is a tr ...
, and its universal covering group of unit quaternions, S3. Slerp gives a straightest and shortest path between its quaternion end points, and maps to a rotation through an angle of 2Ω. However, because the covering is double (''q'' and −''q'' map to the same rotation), the rotation path may turn either the "short way" (less than 180°) or the "long way" (more than 180°). Long paths can be prevented by negating one end if the dot product, , is negative, thus ensuring that −90° ≤ Ω ≤ 90°. Slerp also has expressions in terms of quaternion algebra, all using
exponentiation Exponentiation is a mathematical operation, written as , involving two numbers, the '' base'' and the ''exponent'' or ''power'' , and pronounced as " (raised) to the (power of) ". When is a positive integer, exponentiation corresponds to r ...
.
Real Real may refer to: Currencies * Brazilian real (R$) * Central American Republic real * Mexican real * Portuguese real * Spanish real * Spanish colonial real Music Albums * ''Real'' (L'Arc-en-Ciel album) (2000) * ''Real'' (Bright album) (2010) ...
powers of a quaternion are defined in terms of the quaternion
exponential function The exponential function is a mathematical function denoted by f(x)=\exp(x) or e^x (where the argument is written as an exponent). Unless otherwise specified, the term generally refers to the positive-valued function of a real variable, ...
, written as and given by the power series equally familiar from calculus, complex analysis and matrix algebra: : e^q = 1 + q + \frac + \frac + \cdots + \frac + \cdots . Writing a unit quaternion ''q'' in versor form, , with v a unit 3-vector, and noting that the quaternion square v2 equals −1 (implying a quaternion version of Euler's formula), we have , and . The identification of interest is , so that the real part of ''q'' is , the same as the geometric dot product used above. Here are four equivalent quaternion expressions for Slerp. : \begin \operatorname(q_0, q_1, t) & = q_0 (q_0^ q_1)^t \\[6pt] & = q_1 (q_1^ q_0)^ \\[6pt] & = (q_0 q_1^)^ q_1 \\[6pt] & = (q_1 q_0^)^t q_0 \end The derivative of with respect to ''t'', assuming the ends are fixed, is log(''q''1''q''0−1) times the function value, where the quaternion natural logarithm in this case yields half the 3D angular velocity vector. The initial tangent vector is parallel transported to each tangent along the curve; thus the curve is, indeed, a geodesic. In the tangent space at any point on a quaternion Slerp curve, the inverse of the exponential map (Riemannian geometry), exponential map transforms the curve into a line segment. Slerp curves not extending through a point fail to transform into lines in that point's tangent space. Quaternion Slerps are commonly used to construct smooth animation curves by mimicking affine constructions like the de Casteljau's algorithm, de Casteljau algorithm for Bézier curves. Since the sphere is not an affine space, familiar properties of affine constructions may fail, though the constructed curves may otherwise be entirely satisfactory. For example, the de Casteljau algorithm may be used to split a curve in affine space; this does not work on a sphere. The two-valued Slerp can be extended to interpolate among many unit quaternions, but the extension loses the time complexity, fixed execution-time of the Slerp algorithm.


See also

*Quaternions and spatial rotation *Spherical mean (statistics)


References


External links

* * * * {{cite web, last1=Martin, first1=Brian, title=Brian Martin on Quaternion Animation, url=http://theory.org/software/qfa/writeup/node12.html, archive-url=https://web.archive.org/web/20160324131048/https://theory.org/software/qfa/writeup/node12.html, archive-date=2016-03-24, date=June 23, 1999, url-status=live Computer graphics algorithms Quaternions Interpolation Rotation in three dimensions Spherical curves Articles with example Python (programming language) code