next up previous
Next: Cube-Map Up: Parameter Interpolation and Normalization Previous: Parameter Interpolation and Normalization

Spherical Interpolation

The dot product between two vectors is only equivalent to the cosine of the angle if the two vectors are unit vectors. So the two vectors $ \vec{v}_{1}$ and $ \vec{v}_{2}$ should be interpolated in a way that the interpolant $ \vec{v}(t)$ is moving uniformly between the two vectors and its length remains one. As [14] point out this interpolations works on the surface of the unit sphere and therefore it is called spherical interpolation (Formula 3).

$\displaystyle \vec{v}(t)=\frac{\sin(1-t)\alpha}{\sin\alpha}\vec{v}_{1}+\frac{\sin(t)\alpha }{\sin\alpha}\vec{v}_{2}%%
$ (3)

Where $ \cos\alpha=\vec{v}_{1}\cdot\vec{v}_{2}$. Unfortunately spherical interpolation is not available on current graphics accelerators, only linear interpolation is supported. When using linear interpolation this results in denormalized vectors (Figure 4) and wrong shading intensities.
Figure 4: Linear Interpolation versus Spherical Interpolation
\includegraphics[]{D:/Studium/Per-Pixel-Lighting/text_cescg/image/spherical-interpolation.eps}



Gerald Schröcker 2002-03-21