¿ Como puedo implementar un movimiento libre ( en openGL ) sin utilizar quaternions ? :blink:
Gracias. :D
A que te refieres con "un movimiento libre"?
Me refiero a poder rotar en el eje X,Y,Z sin que se produzca el gimbal lock.
En vez de rotar en cada uno de ellos, encontrar el eje arbitrario ( de los tres ) y el angulo para poder utilizar glRotatef corretamente. Si no es posible asi de otra forma :( pero sin utilizar quaternions (ole) .
Gracias.
Leí sobre una forma de qvitar el gimbal lock, usando matrices de transformación. Recuerdo que consistía en hacer rotaciones pequeñitas en vez de rotaciones totales.
Es decir, si tienes que rotar 30 grados, haz muchas rotaciones de menos graduación hasta llegar a esos 30 grados. Creo recordar que así se podía evitar. Aunque creo que mejor si lo compruebas por ti mosmo, porque la explicación que te acabo de dar no me convence lo más mínimo XD
A mi tampoco me convence. Pero gracias.
Si tienes el link = tengo un poco mas de suerte.
Gracias de nuevo.
Yo miraría los Quaternions :D , en NeHe tienes un tuto para OpenGL
Mientras comía te he hecho el favor de googlear un poco:
Link <--Dale a Matrices tutorial, al final de la página te explica como evitar el Gimbal Lock
Citarorthogonalize" the matrix every frame
regenarate the matrix every frame from euler angles and a position.
Me sonaba algo de regenerar la base Euleriana...
Eres un trozo de pan grugnorr (ole) . Yo busque por google antes de preguntar por aqui, pero mi destreza no fue suficiente. Ahora voy a leerlo, ya os comentare que tal me queda ;)
Gracias.
Era una porción de pizza :D , deberías mirar Quaternions, no hace falta comprender la matemática asociada, búscate alguna implementación (no sé donde ví la de Tim Sweeney, supongo que código del Unreal).
PD: O pásate al lado oscuro de D3D y las maravillosas D3DX :D
No, la de tim sweeney esta en el cotd de flipcode. Ese cotd es la polla, vectorSpace rocks
saludos
usa quaterniones que son faciles de usar y de implementar, y no le des más vueltas