Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: Haddd en 16 de Agosto de 2004, 04:44:42 PM

Título: Proyectores
Publicado por: Haddd en 16 de Agosto de 2004, 04:44:42 PM
 Me pasa una cosa muuy rara con los proyectores. Utilizo la función de D3DX MatrixLookAt, dándole la posición de la luz como origen y el vector (0,0,1) como vector At. Luego creo la matriz de perspectiva y todo genial.

El problema vino cuando quise que el vector At fuera (1,0,0). Bien, pues no lo tiene en cuenta para nada. El proyector me aparece exactamente igual de como si At fuera(0,0,1).

No lo entiendo. ¿alguien ha sufrido este problema ?
Título: Proyectores
Publicado por: _Grey en 16 de Agosto de 2004, 05:00:35 PM
 Ya tienes encuenta el vector UP. Es que como no lo nombras en ningun momento...

Saludos.
Título: Proyectores
Publicado por: Haddd en 16 de Agosto de 2004, 05:29:12 PM
 Up siempre está en (0,1,0)
Título: Proyectores
Publicado por: BeRSeRKeR en 16 de Agosto de 2004, 07:09:44 PM
 Ten en cuenta que el parámetro "At" no es una dirección sino una posición. Con lo que pones, lo que haces es que la luz mire a la posición (1,0,0) y no en la dirección (1,0,0).

Saludos.
Título: Proyectores
Publicado por: Haddd en 16 de Agosto de 2004, 11:49:28 PM
 Gracias Berk, eso lo explica todo (ole) . Yo creía que le estaba pasando el vector NAt típico. Pues sí que!!

(http://www.telefonica.net/web/haddd/imagen.jpg)

Ahí están los dos proyectores, una apuntando a Z y otro a X!!! (por fin :  :rolleyes: )
Título: Proyectores
Publicado por: BeRSeRKeR en 16 de Agosto de 2004, 11:50:23 PM
 Muy chulo. :)
Título: Proyectores
Publicado por: ethernet en 17 de Agosto de 2004, 07:12:49 AM
  (ole)

una cosa: si creas la martiz de proyeccion con lookat y los vectores q especificas no son ortogonales, la matriz que queda no es ortogonal o lo ortogonaliza la API (DX u ogl)

un besico ;***
Título: Proyectores
Publicado por: boubou en 17 de Agosto de 2004, 08:42:31 AM
 Hola Haddd, me gustaria saber como has hecho varias fuentes de luz por shader. Es que mi efecto de bump mapping solo admite una luz por malla.


Venga, un saludo y gracias de antemano :).
Título: Proyectores
Publicado por: Haddd en 17 de Agosto de 2004, 09:10:44 AM
 Activo el blending y hago tantas pasadas como luces tengo. <_<  
Título: Proyectores
Publicado por: Haddd en 17 de Agosto de 2004, 10:30:35 AM
 No es ortogonal. Aunque si lo son los vectores de rotación, hay una traslación, y por lo tanto, ya no puede serlo.
Título: Proyectores
Publicado por: boubou en 17 de Agosto de 2004, 10:37:30 AM
 Gracias!
Título: Proyectores
Publicado por: BeRSeRKeR en 17 de Agosto de 2004, 10:47:12 AM
Cita de: "ethernet"una cosa: si creas la martiz de proyeccion con lookat y los vectores q especificas no son ortogonales, la matriz que queda no es ortogonal o lo ortogonaliza la API (DX u ogl)
Si la base que le pasas a D3DXMatrixLookAt no es ortogonal, la propia función se encarga de hacer que así sea.

Saludos.
Título: Proyectores
Publicado por: DraKKaR en 17 de Agosto de 2004, 11:01:06 AM
 En el caso de OpenGL, se asegura de que los vectores son ortogonales: en realidad no usa directamente los vectores que le pasas a la función gluLookAt, sino que los otma de referencia para construir su propio sistema de vectores ortogonal.
Título: Proyectores
Publicado por: Haddd en 17 de Agosto de 2004, 11:05:28 AM
 La función de D3DX transforma los vectores a los que apunta en vectores ortogonales, pero al matriz al tener la traslación, NO puede ser ortogonal. Esto es así o estoy completamente equivocado :blink: ?