cuaterniones

Report
DOUGLAS GARCIA
VICTOR GONZALEZ
ANIMACIÓN II
ROTACIÓN Y CUATERNIONES
ANIMACION II: ROTACIÓN Y CUATERNIONES
PARA LA IMPLEMENTACIÓN DE LA ORIENTACIÓN EN 3D
EXISTEN VARIAS REPRESENTACIONES:
ÁNGULOS DE EULER
EJES/ÁNGULO
CUATERNIONES
ANIMACION II: ROTACIÓN Y CUATERNIONES
ÁNGULOS DE EULER
ÁNGULOS DE EULER
ES EL MÉTODO MAS SIMPLE PARA IMPLEMENTAR LA ORIENTACIÓN.
PARA CADA EJE, HAY UN VALOR QUE ESPECIFICA LA ROTACIÓN
ALREDEDOR DE ÉL. DE ESTA FORMA, TENEMOS 3 VARIABLES:
X, Y, Z
ESTAS VARIABLES VAN DE 0 A 360 GRADOS
Y SON LA REPRESENTACIÓN DE LOS
MOVIMIENTOS YAW, PITCH Y ROLL.
ANIMACION II: ROTACIÓN Y CUATERNIONES
ÁNGULOS DE EULER
GIMBAL LOCK
NO SON LA SOLUCIÓN MAS ADECUADA, DEBIDO AL PROBLEMA DE
GIMBAL LOCK.
GIMBAL LOCK: ES LA PERDIDA DE UN
GRADO DE LIBERTAD (DEGREE OF
FREEDOM) QUE OCURRE CUANDO 2
DE LOS 3 EJES NECESARIOS PARA LAS
ROTACIONES EN 3D, SON LLEVADOS
A LA MISMA DIRECCIÓN.
GIMBAL: SOPORTE
PIVOTEADO QUE PERMITE LA
ROTACIÓN DE UN OBJETO
ALREDEDOR DE UN EJE.
ANIMACION II: ROTACIÓN Y CUATERNIONES
ÁNGULOS DE EULER
GIMBAL LOCK
EJEMPLO DE GIMBAL
LOCK.
ROTAMOS 90° CON
RESPECTO A Z (PITCH)
TODOS LOS ÁNGULOS ESTÁN
PERPENDICULARES ENTRE SI. ES
DECIR, YAW, PITCH Y ROLL SON
CERO.
AHORA EL EJE PITCH ESTA
PARALELO AL EJE YAW Y SE HA
PERDIDO UN GRADO DE LIBERTAD.
ANIMACION II: ROTACIÓN Y CUATERNIONES
EJES/ÁNGULO
EJES/ÁNGULOS
ESTE MÉTODO ES MEJOR QUE LOS ÁNGULOS DE EULER YA QUE EVITAN
EL GIMBAL LOCK.
ESTA REPRESENTACIÓN CONSISTE EN UN VECTOR UNITARIO QUE
CORRESPONDE AL EJE DE ROTACIÓN Y UN VALOR (DE 0 A 360) QUE
CORRESPONDE A LA ROTACIÓN CON RESPECTO A ESE VECTOR.
X, Y, Z, Θ
ANIMACION II: ROTACIÓN Y CUATERNIONES
EJES/ÁNGULO
PROBLEMAS CON INTERPOLACIONES
A PESAR DE QUE EVITAN EL GIMBAL LOCK, TIENEN PROBLEMAS
CUANDO SE QUIERE HACER INTERPOLACIONES ENTRE 2
ROTACIONES.
LAS INTERPOLACIONES CALCULADAS NO RESULTAN NATURALES
(JERKY ROTATIONS)…
… Y LOS ÁNGULOS DE EULER TIENEN EL MISMO PROBLEMA.
ANIMACION II: ROTACIÓN Y CUATERNIONES
EJES/ÁNGULO
PROBLEMAS CON INTERPOLACIONES
EL PROBLEMA ES QUE LAS ROTACIONES NO SE COMPORTAN DE LA
MISMA FORMA QUE LAS TRASLACIONES.
LAS ROTACIONES INVOLUCRAN MULTIPLICACIONES.
MIENTRAS QUE LAS TRASLACIONES SOLO INVOLUCRAN SUMAS…
… ADEMÁS, LAS MATRICES DE ROTACIÓN NO SON CONMUTATIVAS CON
LA MULTIPLICACIÓN… LAS MATRICES DE TRASLACIÓN SI SON
CONMUTATIVAS CON LA ADICIÓN.
ANIMACION II: ROTACIÓN Y CUATERNIONES
CUATERNIONES
CUATERNIONES
UN CUATERNIÓN ES UNA FORMA ALTERNATIVA DE REPRESENTAR ROTACIONES A
TRAVÉS DEL CUALQUIER EJE.
MATEMÁTICAMENTE, SON UNA EXTENSIÓN DEL CONJUNTO DE NÚMEROS
COMPLEJOS INVENTADOS POR WILLIAM HAMILTON EN 1843.
¡ESTOS TIENEN VENTAJAS SOBRE LOS OTROS MÉTODOS QUE INCLUYEN
OPERACIONES CON MATRICES!
ANIMACION II: ROTACIÓN Y CUATERNIONES
CUATERNIONES
¿CÓMO ESTA FORMADO UN CUATERNIÓN?
UN NÚMERO COMPLEJO ES UN NÚMERO IMAGINARIO QUE SE DEFINE EN
TÉRMINOS DE i, EL NÚMERO IMAGINARIO, SE DEFINE DE TAL MANERA QUE
i*i=-1
AHORA UN CUATERNIÓN ES UNA EXTENSIÓN DE LOS NÚMEROS COMPLEJOS, EN
LUGAR DE SOLO TENER i SE TIENE J, i, K, DONDE TENEMOS QUE
J*J= -1 Y K*K=-1
Q = W+Xi+YJ+ZK
ESTO ES UN CUATERNION!
DONDE X,Y,Z SON NUMEROS COMPLEJOS…
ANIMACION II: ROTACIÓN Y CUATERNIONES
CUATERNIONES
OTRA REPRESENTACIÓN DE LOS CUATERNIONES ES:
Q=[W,(X,Y,Z)]
EN ESTA REPRESENTACIÓN TENEMOS QUE W ES UN ESCALAR Y (X, Y, Z) ES UN
VECTOR.
NO PIENSEN EN (X,Y,Z) COMO UN TIPICO VECTOR EN 3D,
ES UN VECTOR EN 4D, AUNQUE ES MUY POCO INTUITIVO DE VER…
Q = [1,(0,0,0)] ES EL CUATERNIÓN
IDENTIDAD PARA LA MULTIPLICACIÓN.
Q = [0,(0,0,0)] ES EL CUATERNIÓN
IDENTIDAD PARA LA ADICIÓN.
ANIMACION II: ROTACIÓN Y CUATERNIONES
CUATERNIONES
CUATERNIONES Y LAS ROTACIONES
UN CUATERNIÓN UNITARIO ES AQUEL QUE CUMPLE QUE
W 2 + X 2 + Y 2 + Z 2= 1
LO ESPECIAL EN EL CUATERNION UNITARIO ES QUE REPRESENTA LA
ORIENTACION EN EL ESPACIO 3D. ¡CON ELLOS SE PUEDEN
REPRESENTAR ROTACIONES EN 3D DE MANERA MUY SENCILLA!
SI Q ES UN CUATERNIÓN UNITARIO, ÉSTE PUEDE PENSARSE COMO UNA ESFERA
DE RADIO 1 EN EL ESPACIO 4D. AUNQUE SEA MUY POCO INTUITIVO DE VER…
ASÍ, UNA ROTACIÓN SE PUEDE REPRESENTAR CON EL CUATERNIÓN
Q = (W,(X, Y, Z)), DONDE (X, Y, Z) ES EL EJE DE ROTACIÓN Y W EL
VALOR DEL ÁNGULO DE ROTACIÓN.
ANIMACION II: ROTACIÓN Y CUATERNIONES
CUATERNIONES
CONVERSIÓN DESDE CUATERNIONES
PARA USAR LOS CUATERNIONES EN LA ORIENTACIÓN, ES NECESARIO CONVERTIRLOS A
OTRAS REPRESENTACIONES (COMO MATRICES) Y VOLVERLOS A CONVERTIR A
CUATERNIONES.
DE CUATERNIÓN A MATRIZ
Q = (w, x, y, z) EQUIVALE A M = [ w2+x2-y2-z2
2xy + 2wz
2xz - 2wy
DE CUATERNIÓN A EJES/ÁNGULO
Q = (w, x, y, z) EQUIVALE A Θ = 2*COS(W)/S
V = (X, Y, Z)/S
DONDE S = √ X2 + Y2 + Z2
2xy - 2wz
2xz + 2wy
w2-x2+y2-z2 2yz - 2wx
2yz + 2wx w2-x2-y2+z2 ]
ANIMACION II: ROTACIÓN Y CUATERNIONES
CUATERNIONES
CONVERSIÓN A CUATERNIONES
DE EJES/ÁNGULO A CUATERNIÓN
Θ,V = a*(X, Y, Z) EQUIVALE A Q = (COS(Θ/2),
a*X* SEN(Θ/2),
a*Y* SEN(Θ/2),
a*Z* SEN(Θ/2))
DE ÁNGULOS DE EULER A CUATERNIÓN
SEA (X, Y, Z) HAY QUE OBTENER 3 CUATERNIONES INDEPENDIENTES
Qx = [COS(X/2), (SEN(X/2), 0, 0)]
Qy = [COS(Y/2), (0, SEN(Y/2), 0)]
Qz = [COS(Z/2), (0, 0, SEN(Z/2)]
Y FINALMENTE Q = Qx* Qy* Qz
ANIMACION II: ROTACIÓN Y CUATERNIONES
CUATERNIONES
MULTIPLICANDO CUATERNIONES
LA MULTIPLICACIÓN DE 2 CUATERNIONES (Q1 Y Q2) DA COMO RESULTADO
OTRO CUATERNIÓN UNITARIO….
…ESE CUATERNIÓN REPRESENTA LA ROTACIÓN COMBINADA
ENTRE Q1 Y Q2, ¡INCREÍBLE PERO CIERTO!
VEAMOS COMO ES LA MULTIPLICACIÓN…
Q1 = (w1, v1) CON v1 = (x1, y1, z1)
Q2 = (w2, v2) CON v2 = (x2, y2, z2)
Q1 * Q2 =( w1.w2 - v1.v2, w1.v2 + w2.v1 + v1*v2) DONDE
. Y * SON EL
PRODUCTO PUNTO Y PRODUCTO CRUZ DE VECTORES.
NOTA: Q1 * Q2 ES DIFERENTE DE Q2 * Q1, LA MULTIPLICACION NO ES CONMUTATIVA!
ANIMACION II: ROTACIÓN Y CUATERNIONES
CUATERNIONES
INTERPOLACIÓN CON CUATERNIONES
UNA DE LAS PRINCIPALES RAZONES DEL PORQUE LOS PROGRAMADORES DE
JUEGOS SE INTERESAN EN LOS CUATERNIONES, ES POR SU FACILIDAD PARA
INTERPOLAR DOS ORIENTACIONES Y POR SUS BUENOS RESULTADOS
(SMOOTH ANIMATION).
PARA INTERPOLAR ENTRE 2 CUATERNIONES SE PUEDE APLICAR TANTO LA
INTERPOLACIÓN LINEAR LERP O INTERPOLACIÓN LINEAR ESFÉRICA SLERP .
SI SE USA LERP, LOS RESULTADOS DE LA ROTACIÓN SE VERÁN AFECTADOS POR
LA VELOCIDAD, COSA QUE
SE SOLUCIONA CON SLERP.
ANIMACION II: ROTACIÓN Y CUATERNIONES
CUATERNIONES
CUATERNIONES EN VIDEOJUEGOS
UNA DE LAS PRINCIPALES APLICACIONES
DE LOS CUATERNIONES EN LOS VIDEO
JUEGOS, SE DA EN LA ROTACIÓN DE
CÁMARAS DE EN 3RA PERSONA.
ANIMACION II: ROTACIÓN Y CUATERNIONES
CUATERNIONES
EFICIENCIA DE LOS CUATERNIONES
APARTE DE EVADIR PROBLEMAS COMO GIMBAL LOCK Y PROVEER DE
INTERPOLACIONES REALISTAS, LOS CUATERNIONES SON MUCHO MAS
EFICIENTES A LA HORA DE REALIZAR LAS OPERACIONES QUE INVOLUCRAN
HACER ROTACIONES.
PERFORMANCE COMPARISONS WITH OTHER ROTATION METHODS
PERFORMANCE COMPARISON OF VARIOUS ROTATION OPERATIONS
ANIMACION II: ROTACIÓN Y CUATERNIONES
FIN
ANIMACION II: ROTACIÓN Y CUATERNIONES
REFERENCIAS
HTTP://ES.WIKIPEDIA.ORG/WIKI/CUATERNIONES_Y_ROTACI%C3%B3N_EN_EL_ESPACIO
HTTP://EN.WIKIPEDIA.ORG/WIKI/QUATERNIONS_AND_SPATIAL_ROTATION
HTTP://WWW.GAMEDEV.NET/REFERENCE/PROGRAMMING/FEATURES/QPOWERS/DEFAULT.ASP
HTTP://WWW.GAMASUTRA.COM/FEATURES/19980703/QUATERNIONS_01.HTM
ADVANCED ANIMATION AND RENDERING TECHINQUES, [WATT Y WATT]

similar documents