Compartir a través de


Vectores, vértices y cuaterniones (Direct3D 9)

A lo largo de Direct3D, los vértices describen la posición y la orientación. Cada vértice de un primitivo se describe mediante un vector que proporciona su posición, color, coordenadas de textura y un vector normal que proporciona su orientación.

Los cuaterniones agregan un cuarto elemento a los valores [x, y, z] que definen un vector de tres componentes. Los cuaterniones son una alternativa a los métodos de matriz que se usan normalmente para las rotaciones 3D. Un cuaternión representa un eje en el espacio 3D y un giro alrededor de ese eje. Por ejemplo, un cuaternión podría representar un eje (1,1,2) y un giro de 1 radian. Los cuaterniones llevan información valiosa, pero su verdadero poder proviene de las dos operaciones que puede realizar en ellos: composición e interpolación.

Realizar composición en cuaterniones es similar a combinarlas. La composición de dos cuaterniones se nota como la ilustración siguiente.

ilustración de la notación de cuaternión

La composición de dos cuaterniones aplicadas a una geometría significa "girar la geometría alrededor del eje₁ por rotación, girarla alrededor del eje₁ por rotación₁". En este caso, Q representa una rotación alrededor de un solo eje que es el resultado de aplicar q Despues, q₁ a la geometría.

Mediante la interpolación de cuaternión, una aplicación puede calcular una ruta de acceso suave y razonable desde un eje y orientación a otro. Por lo tanto, la interpolación entre q₁ yqs proporciona una manera sencilla de animar de una orientación a otra.

Cuando se usa la composición y la interpolación conjuntamente, proporcionan una manera sencilla de manipular una geometría de una manera que parezca compleja. Por ejemplo, imagine que tiene una geometría que desea girar a una orientación determinada. Sabes que quieres girarlo r₁ grados alrededor del eje, después girarlo r₁ grados alrededor del eje₁, pero no conoces el cuaternión final. Mediante el uso de la composición, puede combinar los dos giros de la geometría para obtener un único cuaternión que es el resultado. A continuación, podría interpolar desde el original hasta el cuaternión compuesto para lograr una transición fluida de una a otra.

La biblioteca de utilidades D3DX incluye funciones que le ayudan a trabajar con cuaterniones. Por ejemplo, la función D3DXQuaternionRotationAxis agrega un valor de rotación a un vector que define un eje de rotación y devuelve el resultado en un cuaternión definido por una estructura D3DXQUATERNION . Además, la función D3DXQuaternionMultiply compone cuaterniones y D3DXQuaternionSlerp realiza interpolación lineal esférica entre dos cuaterniones.

Las aplicaciones de Direct3D pueden usar las siguientes funciones para simplificar la tarea de trabajar con cuaterniones.

Las aplicaciones de Direct3D pueden usar las siguientes funciones para simplificar la tarea de trabajar con vectores de tres componentes.

Muchas funciones adicionales que simplifican las tareas mediante vectores de dos y cuatro componentes se incluyen entre las funciones matemáticas proporcionadas por la biblioteca de utilidades D3DX.

Sistemas de coordenadas y geometría