Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Vector * Matriz O Matriz*vector

Iniciado por Haddd, 07 de Agosto de 2004, 07:30:30 PM

« anterior - próximo »

Haddd

 Ummm resulta que si en el shader hago por ejemplo:

float3 r=mul(vin.position,Matriz)

y hago:

float3 r=mul(Matriz,vin.position)

obtengo resultados diferentes. Desde mi punto de vista, debería dar el mismo resultado. He visto la doc sobre mul() y me dice que en en primer caso multiplica una columna por la matriz y en el 2º una matriz por una fila, pero pienso que el resultado debería ser lo mismo, aunque en la práctica no lo es. ¿alguien puede explicarme porqué?

ethernet

 me gustaria saber como multiplica una matriz de 1x4 por una de 4x4 ¿?
en general el producto de matrices no es conmutativo, o sea A*B != B*A

un saludo

Haddd

 No entiendo. ¿qué tiene que ver tu respuesta con mi pregunta? O hay algo que se me escapa...¿Puedes explicarte mejor?

ethernet

 un vector es una particularizacion de una matriz en la cual solo una una columna o solo una fila. Para poder multiplicar dos matrices la primera debe tener el mismo numero de columnas que de filas tiene la segunda. Com he dicho el producto de  matrices no es conmutativo (EN GENERAL!!!)

EDIT: puedes hacer la traspuesta del vector para multiplicar (esa seria la forma rigurosa) pero vamos, si pillas un vector cualquier y una matriz cualquier y las multiplicas en distinto orden no salen iguales

un saludo

BeRSeRKeR

 Es lo que dice ethy. La multiplicación de matrices no cumple la propiedad conmutativa. Si aún recuerdo cómo se multiplican matrices, mira este ejemplo. Como puedes ver, los resultados son diferentes.



Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Haddd

 Bien, lo he leido en la documentación de DX. Al multiplicar una matriz por un vector, en realidad es lo mismo que multiplicar el vector por la traspuesta de la matriz.

Bueno, gracias por la ayuda a ambos.

Berserker, el ejemplo de las matrices está muy claro y me ha ayudado mucho.

Postdata:Habrá que comprarse el libro de matemáticas para juegos!!






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.