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 ?
Ya tienes encuenta el vector UP. Es que como no lo nombras en ningun momento...
Saludos.
Up siempre está en (0,1,0)
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.
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: )
Muy chulo. :)
(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 ;***
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 :).
Activo el blending y hago tantas pasadas como luces tengo. <_<
No es ortogonal. Aunque si lo son los vectores de rotación, hay una traslación, y por lo tanto, ya no puede serlo.
Gracias!
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.
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.
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: ?