stringtranslate.com

Slerp

En gráficos por computadora , slerp es una abreviatura de interpolación lineal esférica , introducida por Ken Shoemake [1] en el contexto de la interpolación de cuaterniones con el fin de animar la rotación 3D . Se refiere al movimiento a velocidad constante a lo largo de un arco de círculo máximo de radio unitario , dados los extremos y un parámetro de interpolación entre 0 y 1.

Slerp geométrico

Slerp tiene una fórmula geométrica independiente de los cuaterniones e independiente de la dimensión del espacio en el que está incrustado el arco. Esta fórmula, una suma ponderada simétrica atribuida a Glenn Davis, se basa en el hecho de que cualquier punto de la curva debe ser una combinación lineal de los extremos. Sean p 0 y p 1 el primer y último punto del arco, y sea t el parámetro, 0 ≤ t ≤ 1 . Calcula Ω como el ángulo subtendido por el arco, de modo que cos Ω = p 0p 1 , el producto escalar n -dimensional de los vectores unitarios desde el origen hasta los extremos. La fórmula geométrica es entonces

La simetría radica en el hecho de que slerp( p 0 , p 1 ; t ) = slerp( p 1 , p 0 ; 1 − t ) . En el límite como Ω → 0 , esta fórmula se reduce a la fórmula simétrica correspondiente para la interpolación lineal ,

Una trayectoria slerp es, de hecho, el equivalente en geometría esférica de una trayectoria a lo largo de un segmento de línea en el plano; un círculo máximo es una geodésica esférica .

El vector oblicuo rectifica al factor slerp.

Más familiar que la fórmula general de slerp es el caso en el que los vectores finales son perpendiculares, en cuyo caso la fórmula es p 0 cos θ + p 1 sin θ . Dejando θ = t π /2 y aplicando la identidad trigonométrica cos θ = sin( π /2 − θ ) , esto se convierte en la fórmula slerp. El factor de 1/sen Ω en la fórmula general es una normalización, ya que un vector p 1 en un ángulo de Ω a p 0 se proyecta sobre la perpendicular ⊥ p 0 con una longitud de solo sen Ω .

Algunos casos especiales de slerp admiten cálculos más eficientes. Cuando se va a dibujar un arco circular en una imagen rasterizada, el método preferido es alguna variación del algoritmo circular de Bresenham . La evaluación en los valores de parámetros especiales 0 y 1 produce trivialmente p 0 y p 1 , respectivamente; y bisección, evaluación en 1/2, se simplifica a ( p 0 + p 1 )/2 , normalizado. Otro caso especial, común en la animación, es la evaluación con extremos fijos y pasos paramétricos iguales. Si p k −1 y p k son dos valores consecutivos, y si c es el doble de su producto escalar (constante para todos los pasos), entonces el siguiente valor, p k +1 , es la reflexión p k +1 = cp kp k −1 .

cuaternión

Cuando se aplica slerp a cuaterniones unitarios , la ruta del cuaternión se asigna a una ruta a través de rotaciones 3D de forma estándar . El efecto es una rotación con velocidad angular uniforme alrededor de un eje de rotación fijo . Cuando el punto final inicial es el cuaternión identidad, slerp proporciona un segmento de un subgrupo de un parámetro tanto del grupo de Lie de rotaciones 3D, SO(3) , como de su grupo de cobertura universal de cuaterniones unitarios, S 3 . Slerp proporciona un camino más recto y más corto entre los puntos finales de sus cuaterniones y se asigna a una rotación en un ángulo de 2Ω. Sin embargo, debido a que la cobertura es doble ( q y − q se asignan a la misma rotación), la trayectoria de rotación puede girar en el "camino corto" (menos de 180 °) o en el "camino largo" (más de 180 °). Se pueden evitar caminos largos negando un extremo si el producto escalar, cos Ω , es negativo, asegurando así que −90° ≤ Ω ≤ 90° .

Slerp también tiene expresiones en términos de álgebra de cuaterniones, todas usando exponenciación . Las potencias reales de un cuaternión se definen en términos de la función exponencial del cuaternión , escrita como e q y dada por la serie de potencias igualmente familiar del cálculo, el análisis complejo y el álgebra matricial:

Escribiendo un cuaternión unitario q en forma versor , cos Ω + v sin Ω , con v un vector unitario 3, y observando que el cuadrado del cuaternión v 2 es igual a −1 (lo que implica una versión del cuaternión de la fórmula de Euler ), tenemos e v Ω = q , y q t = cos t Ω + v sin t Ω . La identificación de interés es q = q 1 q 0 −1 , de modo que la parte real de q es cos Ω , igual que el producto escalar geométrico utilizado anteriormente. Aquí hay cuatro expresiones de cuaterniones equivalentes para slerp.

La derivada de slerp( q 0 , q 1 ; t ) con respecto a t , suponiendo que los extremos sean fijos, es log( q 1 q 0 −1 ) multiplicado por el valor de la función, donde el logaritmo natural del cuaternión en este caso produce la mitad de Vector de velocidad angular 3D . El vector tangente inicial se transporta paralelo a cada tangente a lo largo de la curva; por tanto, la curva es, en efecto, una geodésica.

En el espacio tangente en cualquier punto de una curva slerp de cuaternión, la inversa del mapa exponencial transforma la curva en un segmento de recta. Las curvas Slerp que no se extienden a través de un punto no se transforman en líneas en el espacio tangente de ese punto.

Los slerps de cuaterniones se utilizan comúnmente para construir curvas de animación suaves imitando construcciones afines como el algoritmo de Casteljau para las curvas de Bézier . Dado que la esfera no es un espacio afín , las propiedades familiares de las construcciones afines pueden fallar, aunque las curvas construidas pueden ser completamente satisfactorias. Por ejemplo, el algoritmo de Casteljau puede usarse para dividir una curva en un espacio afín; esto no funciona en una esfera.

El slerp de dos valores se puede extender para interpolar entre muchos cuaterniones unitarios, [2] pero la extensión pierde el tiempo de ejecución fijo del algoritmo slerp.

Ver también

Referencias

  1. ^ "Ken Shoemake - Inicio".
  2. ^ Pennec, Xavier (marzo de 1998). Calcular la media de la aplicación de características geométricas a la rotación media (informe). INRIA . Consultado el 19 de junio de 2020 .

enlaces externos