Polls

Afectará la crisis a los videojuegos?
 
Inicio arrow Noticias arrow Ver Todas arrow Matematicas arrow Row Major vs Colum Major
Row Major vs Colum Major PDF Print E-mail
Written by Javier Loureiro   
Wednesday, 13 June 2007

 

 Hoy un compañero me ha pasado un hilo de usenet sobre cómo organizar las matrices. Él usa row major, y yo soy column major.  Creo que podríamos dividir a los programadores en esas 3 categorías (la otra es la de "no me entero y pruebo hasta que salga" major). Qué diferencia hay? a ver, vamos a intentar sacar unas cuantas. 

 La principal diferencia que hay entre los 2 metodos es a la hora de colocar las multiplicaciones. Si usamos row major, transformar un vector se convierte en v'=v * m . O sea, el vector va delante, y además se escribe como una fila de 4 coordenadas. En caso de columnas, el vector va detrás de la matriz, asi tendremos v'= M * v para la transformación de vector por matriz. 

El sistema lo reconoceremos rapidamente mirando la translacion. Si es la última fila, a bajo de todo, estamos en row major. Si es la última columna, tendremos column major.

El lengiaje C es row major. Parecería que en principio es más cómodo asi, pero la realidad es que las multiplicaciones de vectores y matrices no cambian (excepto por el orden) ya que hay que hay que acceder por indices.  Y la copia es exactamente igual en ambos casos.

El mundo directx usa row major, el mundo opengl usa column major. Los matematicos usan mas column major, pero no siempre, y en casos de algebra, hay gente que usa mas row major.

Renderman usa row major, de echo, directx y renderman son muy parecidos, ya que ambos usan left hand (otro tema de discusión).

Hoy en día, es imposible decir cual es "mejor". Hay que decantarse por uno. Si mentalmente no estais acostumbrados a un sistema todavía, mi consejo es que aprovecheis el sistema de vuestro software de referencia. Si programais en opengl, column major, si usais directx, row. Leed la matriz de un objeto en vuestros software 3D, y mirad la matriz de translacion que os devuelve, y no le deis mas vueltas. No las tiene.

 

Comentarios
Añadir nuevoBuscar
Escribir comentario
Nombre:
Email:
 
Website:
Título:
Código UBB:
[b] [i] [u] [url] [quote] [code] [img] 
 
Security Image
Por favor introduce el código anti-spam que puedes leer en la imagen.

Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved.



menéameDigg!Del.icio.us!Google!Technorati!Yahoo!
Last Updated ( Wednesday, 13 June 2007 )
 
< Prev

Lista de Correo

visita la lista de correo de codepixel. Es una lista abierta, asi que podrás subscribirte y preguntar tus dudas de programación, compartir tus opiniones, aportar ideas, y formar parte de la comunidad codepixelera.