Sistemas de coordenadas (Direct3D 9)
Normalmente, las aplicaciones de gráficos 3D usan dos tipos de sistemas de coordenadas cartesianas: a la izquierda y a la derecha. En ambos sistemas de coordenadas, el eje X positivo apunta a la derecha y el eje Y positivo apunta hacia arriba. Puede recordar en qué dirección apunta el eje Z positivo apuntando los dedos de la mano izquierda o derecha en la dirección x positiva y curándolas en la dirección Y positiva. La dirección en la que apunta el pulgar, ya sea hacia o lejos de usted, es la dirección que apunta el eje Z positivo para ese sistema de coordenadas. En la ilustración siguiente se muestran estos dos sistemas de coordenadas.
Direct3D usa un sistema de coordenadas a la izquierda. Si va a migrar una aplicación basada en un sistema de coordenadas a la derecha, debe realizar dos cambios en los datos pasados a Direct3D.
- Voltee el orden de los vértices de triángulo para que el sistema los recorra en el sentido de las agujas del reloj desde el frente. En otras palabras, si los vértices son v0, v1, v2, páselos a Direct3D como v0, v2, v1.
- Use la matriz de vistas para escalar el espacio mundial en -1 en la dirección z. Para ello, cambie el signo del miembro _31, _32, _33 y _34 de la estructura D3DMATRIX que se usa para la matriz de vistas.
Para obtener lo que equivale a un mundo con la derecha, use las funciones D3DXMatrixPerspectiveRH y D3DXMatrixOrthoRH para definir la transformación de proyección. Sin embargo, tenga cuidado de usar la función D3DXMatrixLookAtRH correspondiente, invertir el orden de selección de la parte trasera y diseñar los mapas del cubo en consecuencia.
Aunque las coordenadas de izquierda y derecha son los sistemas más comunes, hay una variedad de otros sistemas de coordenadas usados en el software 3D. Por ejemplo, no es inusual que las aplicaciones de modelado 3D usen un sistema de coordenadas en el que el eje Y apunta hacia o fuera del visor, y el eje Z apunta hacia arriba.
Formalmente, la orientación de un conjunto de vectores de base (es decir, un sistema de coordenadas) se puede encontrar mediante la computación del determinante de la matriz definida por el conjunto determinado de vectores de base. Si el determinante es positivo, se dice que la base está orientada "positivamente" (o a la derecha). Si el determinante es negativo, se dice que la base está orientada "negativamente" (o a la izquierda). Para obtener una explicación de lo que es un determinante, consulte cualquier recurso de álgebra lineal.
Informalmente, puede usar la "regla de mano derecha/izquierda" para determinar si un conjunto determinado de vectores de base forman un sistema de coordenadas de derecha o izquierda.
Las operaciones esenciales realizadas en los objetos definidos en un sistema de coordenadas 3D son la traducción, la rotación y el escalado. Puede combinar estas transformaciones básicas para crear una matriz de transformación. Para obtener más información, consulte Transformaciones (Direct3D 9).
Al combinar estas operaciones, los resultados no son conmutantes; el orden en el que se multiplican las matrices es importante.
Temas relacionados