Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Mensajes - ozharu

#1
Programación gráfica / Lo saque
19 de Febrero de 2007, 09:18:20 PM
No tengo el codigo de las funciones aqui, pero te comento como lo he hecho,

Parto de la base que quieres una orientacion nueva para la camara, entonces hay que ir a hacer las operaciones al mundo. Yo tomo la position y el lookAt del destino, y con ello

Vector sinNormalizar(vecTo - vecFrom)
         sinNormalizar.y = 0
          sinNormalizar.normaliza()
       


Mi eje Y es el Up. Una vez que tengo esto, utilizo una funcion que dado un vector origen y un destino me calcula el quaternion correspondiente.


Quaternion rotation1 = setShortestRotation(Vector (0,0,1), VectorNormalizado)(componentw y =0)

Con esto ya tendrias el Yaw, ahora nos falta el pitch. Para ello oriento el vector unitario con este quaternion

VectorYaw = orientaVector(rotation,Vector(0,0,1))
         Quaternion rotation2 = setShortestRotation(vectorYaw, VectorNormalizado) (pero con la componente con su valor original, vamos que normalizas el vector entero, sin poner la y a 0)
       Quaternion final = rotacion1 *rotation2; o al reves, no me acuerdo    


Este modo te evita usar matrices, aunque tb se puede hacer por matrices. Si tienes dudas de las matrices preguntamelo y te digo como se haria (aunque no toy seguro al 100%

Pero esto funciona y bien
#2
Programación gráfica / Camara y vectores
18 de Febrero de 2007, 01:49:02 PM
Estoy haciendo una camara libre para poder debuguear el mundo, los movimientos de las camara los tengo hechos mediante quaterniones, con lo cual la clase de la camara solo tiene una posicion y una orientacion. Ademas tengo una camara en 3 persona que funciona mediante From, up y to.

Mi problema es que cuando cambio de la camara de 3 persona a la camara debug, quiero que esta tenga la misma vista que la otra ( que mire en la misma direccion). Mi problema es que no se como sacar el quaternion que me describa esa orientacion, ya que el quaternion que calculo hace que mi camara rote completamente mal





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.