Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: Vanch en 22 de Octubre de 2003, 05:15:08 PM

Título: Free Movement
Publicado por: Vanch en 22 de Octubre de 2003, 05:15:08 PM
 ¿ Como puedo implementar un movimiento libre ( en openGL ) sin utilizar quaternions ?  :blink:

Gracias. :D
Título: Free Movement
Publicado por: DraKKaR en 22 de Octubre de 2003, 06:37:33 PM
 A que te refieres con "un movimiento libre"?
Título: Free Movement
Publicado por: Vanch en 22 de Octubre de 2003, 09:05:31 PM
 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.
Título: Free Movement
Publicado por: DraKKaR en 22 de Octubre de 2003, 09:13:56 PM
 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
Título: Free Movement
Publicado por: Vanch en 22 de Octubre de 2003, 09:25:44 PM
 A mi tampoco me convence. Pero gracias.
Si tienes el link = tengo un poco mas de suerte.

Gracias de nuevo.
Título: Free Movement
Publicado por: Grugnorr en 23 de Octubre de 2003, 02:28:59 PM
 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...
Título: Free Movement
Publicado por: Vanch en 23 de Octubre de 2003, 09:00:10 PM
 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.
Título: Free Movement
Publicado por: Grugnorr en 24 de Octubre de 2003, 12:44:15 AM
 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  
Título: Free Movement
Publicado por: ethernet en 25 de Octubre de 2003, 09:58:55 PM
 No, la de tim sweeney esta en el cotd de flipcode. Ese cotd es la polla, vectorSpace rocks

saludos
Título: Free Movement
Publicado por: CoLSoN2 en 26 de Octubre de 2003, 03:18:27 PM
 usa quaterniones que son faciles de usar y de implementar, y no le des más vueltas