Compartir a través de


Vista de transformación

Una transformación de vista localiza al visor en el espacio mundial, transformando los vértices en el espacio de la cámara. En el espacio de la cámara, la cámara o el visor están en el origen, mirando en la dirección z positiva. La matriz de vistas reubica los objetos del mundo alrededor de la posición de una cámara , el origen del espacio de la cámara y la orientación. Direct3D usa un sistema de coordenadas izquierdo, por lo que z es positivo en una escena.

Hay muchas maneras de crear una matriz de vistas. En todos los casos, la cámara tiene alguna posición lógica y orientación en el espacio mundial que se usa como punto de partida para crear una matriz de vista que se aplicará a los modelos de una escena. La matriz de vista traduce y gira los objetos para colocarlos en el espacio de la cámara, donde la cámara está en el origen. Una manera de crear una matriz de vista es combinar una matriz de traducción con matrices de rotación para cada eje. En este enfoque, se aplica la siguiente ecuación de matriz general.

ecuación de la transformación de vista

En esta fórmula, V es la matriz de vista que se va a crear, T es una matriz de traducción que cambia la posición de los objetos del mundo y Rₓ a Rz son matrices de rotación que giran objetos a lo largo del eje x, y-y-z. Las matrices de traducción y rotación se basan en la posición lógica y la orientación de la cámara en el espacio mundial. Por lo tanto, si la posición lógica de la cámara en el mundo es <10.20.100>, el objetivo de la matriz de traducción es mover objetos -10 unidades a lo largo del eje X, -20 unidades a lo largo del eje Y y -100 unidades a lo largo del eje Z. Las matrices de rotación de la fórmula se basan en la orientación de la cámara, en términos de cuánto se giran los ejes del espacio de la cámara fuera de la alineación con el espacio mundial. Por ejemplo, si la cámara mencionada anteriormente apunta directamente hacia abajo, su eje Z es de 90 grados (pi/2 radianes) fuera de la alineación con el eje Z del espacio mundial, como se muestra en la ilustración siguiente.

ilustración del espacio de vista de la cámara en comparación con el espacio del mundo

Las matrices de rotación aplican rotaciones de igual, pero opuestas, magnitud a los modelos de la escena. La matriz de vista de esta cámara incluye un giro de -90 grados alrededor del eje X. La matriz de rotación se combina con la matriz de traducción para crear una matriz de vista que ajuste la posición y la orientación de los objetos de la escena para que su parte superior esté orientada a la cámara, lo que da la apariencia de que la cámara está por encima del modelo.

Configuración de una matriz de vistas

Direct3D usa las matrices de mundo y vista para configurar varias estructuras de datos internas. Cada vez que se establece una nueva matriz de mundo o vista, el sistema vuelve a calcular las estructuras internas asociadas. El establecimiento de estas matrices con frecuencia consume mucho tiempo de cálculo. Puede minimizar el número de cálculos necesarios mediante la concatenación de las matrices de mundo y vista en una matriz de vista mundial que establezca como matriz de mundo y, a continuación, establezca la matriz de vista en la identidad. Mantenga copias almacenadas en caché de matrices individuales de mundo y vista que puede modificar, concatenar y restablecer la matriz mundial según sea necesario.

Transformaciones