Anar al contingut

Interpolació llineal esfèrica

De L'Enciclopèdia, la wikipedia en valencià
Vector oblicuo rectificat pel factor slerp

En computació gràfica, el terme slerp és una abreviatura de l'expressió anglesa "spherical linear interpolation" (interpolació llineal esfèrica)), introduïda per Ken Shoemake[1] en el context de l'interpolació per mig de cuaterniones en la finalitat de generar animacions en moviments de rotació en 3D. Fa referència al moviment a velocitat constant sobre un arc d'un gran círcul d'una esfera de radi unitari, donats els seus extrems i un paràmetro d'interpolació entre 0 i 1.

Slerp geomètric

[editar | editar còdic]

El slerp té una formulació geomètrica independent dels cuaterniones i independent de la dimensió de l'espai en el que està incrustat l'arc. Esta fòrmula, una suma ponderada simètrica atribuïda a Glenn Davis, es basa en el fet de que qualsevol punt de la curva deu ser una combinació llineal dels extrems. Siguen p0 i p1 el primer i l'últim punt de l'arc, i siga t el paràmetro 0 ≤ t ≤ 1. Cálculese O com l'àngul subtendido format per l'arc, de modo que cos Ω = p0p1, el producte escalar de n dimensions dels vectores unitaris des de l'orige fins als extrems. La fòrmula geomètrica és llavors

slerp(p0,p1;t)=sin[(1t)Ω]sinΩp0+sin[tΩ]sinΩp1.

La simetria radica en el fet de que slerp(p0, p1; t) = slerp(p1, p0; 1 − t). En el llímit quan Ω → 0, esta fòrmula es reduïx a la fòrmula simètrica corresponent per a l'interpolació llineal,

lerp(p0,p1;t)=(1t)p0+tp1.

Una trayectòria slerp és, de fet, l'equivalent en geometria esfèrica d'una trayectòria en un segment rectilíneo en el pla; ya que un círcul màxim és una llínea geodèsica esfèrica.

Més familiar que la fòrmula general de slerp és el cas en el que els vectores finals són perpendiculars, en el cas dels quals la fòrmula és p0cos θ + p1sense θ. Fent que θ = tΠ/2 i aplicant l'identitat trigonométrica cos θ = sense(Π/2 − θ), açò es convertix en la fòrmula de la slerp. El factor de 1/sense Ω en la fòrmula general és una normalisació, ya que un vector p1 en un àngul d'O en p0 es proyecta sobre la perpendicular p0 en una llongitut de sol sense Ω.

Alguns casos especials de slerp admeten càlculs més eficients. Quan es va a dibuixar un arc circular en una image rasterizada, el método preferit és alguna variació del algoritme circunferencial de Bresenham. L'evaluació en els valors de paràmetros especials 0 i 1 produïx trivialment p0 i p1, respectivament; i la bisecció, per a l'evaluació en Plantilla:Sfrac, simplifica a (p0 + p1)/2, normalisada. Un atre cas especial, comú en l'animació, és l'evaluació en extrems fixos i passos paramètrics iguals. Si pk−1 i pk són dos valors consecutius, i si c és el doble del seu producte escalar (constant per a tots els passos), llavors el següent valor, pk+1, és la reflexió pk+1 = cpkpk−1.

Cuaternión slerp

[editar | editar còdic]

Quan s'aplica slerp per mig d'un cuaternión unitari, la ruta del cuaternión s'assigna a una ruta a través de rotacions 3D de forma estàndar. L'efecte és una rotació en velocitat angular uniforme al voltant d'un eix de rotació fix. Quan el punt final inicial és el cuaternión identitat, slerp proporciona un segment d'un grup uniparamétrico tant del grup de Lie de rotacions 3D, SO(3), com de la seua grup de recobrimiento universal de cuaterniones unitaris, S3. El slerp proporciona un camí més directe entre els punts finals dels seus cuaterniones i s'assigna a una rotació en un àngul de 2O. No obstant, degut a que el recobriment és doble (q i -q corresponen a la mateixa rotació), la trayectòria de rotació pot girar en el "camí curt" (menys de 180°) o en el "camí llarc" (més de 180°). Es poden evitar rutes llargues canviant el signe d'un extrem si el producte escalar, cos Ω, és negatiu, assegurant aixina que −90° ≤ Ω ≤ 90°.

També té expressions en térmens d'àlgebra de cuaterniones, totes usant potenciació. Les potències reals d'un cuaternión es definixen en térmens de la funció exponencial de cuaterniones, escrita com iq i donada per la série de potències igualment familiar en càlcul, anàlisis complex i àlgebra matricial:

eq=1+q+q22+q36++qnn!+.

Escriure un cuaternión unitari q en forma de versor, cos Ω + v sense Ω, en v un vector unitari 3D, i observar que el quadrat del cuaternión v2 és igual a -1 (lo que implica una versió per als cuaterniones de la fòrmula de Euler), es té que ivΩ = q i qt = cos tΩ + v sense tΩ. L'identificació d'interés és q = q1q0−1, de modo que la part real de q és cos Ω, igual que el producte escalar geomètric utilisat anteriorment. Ací hi ha quatre expressions de cuaterniones equivalents per al slerp.

slerp(q0,q1,t)=q0(q01q1)t=q1(q11q0)1t=(q0q11)1tq1=(q1q01)tq0

La derivada de slerp(q0, q1; t) sobre t, suponent que els extrems siguen fixos, és log(q1q0−1) multiplicat pel valor de la funció, a on el logaritmo natural del cuaternión en este cas produïx la mitat del vector 3D velocitat angular. El vector tangente inicial s'aplica paralelament a cada tangente en la curva; per lo tant, la curva és, en efecte, una geodèsica.

En l'espai tangente, en qualsevol punt d'una curva slerp per mig de cuaterniones, l'inversa de la funció exponencial transforma la curva en un segment rectilíneo. Les curves slerp que no s'estenen a través d'un punt no es transformen en rectes en l'espai tangente d'eixe punt.

Els slerps de cuaterniones s'utilisen comunament per a construir curves d'animació suaus, imitant construccions afins com l'algoritme de De Casteljau per a les curves de Bézier. Ya que l'esfera no és un espai afí, les propietats familiars de les construccions afins poden fallar, encara que les curves construïdes poden ser completament satisfactòries. Per eixemple, l'algoritme de Casteljau es pot utilisar per a dividir una curva en un espai afí, lo que no funciona en una esfera.

El slerp de dos valors es pot estendre per a interpolar entre molts cuaterniones unitaris,[2] pero l'extensió pert el temps d'eixecució fix de l'algoritme slerp.

Vore també

[editar | editar còdic]

Referències

[editar | editar còdic]


Referències

[editar | editar còdic]