Vetores, vértices e quatérnions (Direct3D 9)

Em todo o Direct3D, os vértices descrevem a posição e a orientação. Cada vértice em uma primitiva é descrito por um vetor que oferece suas coordenadas de textura, cor e posição, e um vetor normal que oferece a sua orientação.

Quatérnions adicionam um quarto elemento aos valores [x, y, z] que definem um vetor de três componentes. Os quatérnios são uma alternativa aos métodos de matriz que são normalmente usados para rotações 3D. Um quatérnio representa um eixo no espaço 3D e uma rotação em torno do eixo em questão. Por exemplo, um quatérnio pode representar um eixo (1,1,2) e uma rotação de 1 radiano. Os quatérnios transportam informações úteis, mas seu verdadeiro valor é proveniente das duas operações que você pode executar neles: composição e interpolação.

Realizar a composição em quatérnios é semelhante a combiná-los. A composição de dois quatérnios é representada como a ilustração a seguir.

Ilustração de notação de quatérnio

A composição de dois quatérnions aplicados a uma geometria significa "girar a geometria ao redor do eixo₂ por rotação₂, em seguida, girá-la em torno do eixo₁ por rotação₁". Nesse caso, Q representa uma rotação em torno de um único eixo que é o resultado da aplicação de q₂ e, em seguida, q₁ à geometria.

Usando a interpolação de quatérnio, um aplicativo pode calcular um caminho suave e razoável de um eixo e orientação para outro. Portanto, a interpolação entre q₁ e q₂ fornece uma maneira simples de fazer a animação de uma orientação para outra.

Quando você usa composição e interpolação juntos, eles fornecem uma maneira simples de manipular uma geometria de maneira que se pareça complexa. Por exemplo, imagine que você tenha uma geometria que você deseja girar para uma determinada orientação. Você sabe que você deseja girá-la r₂ graus em torno do eixo₂, em seguida, girá-la r₁ graus em torno do eixo₁, mas você não sabe o quatérnio final. Usando a composição, você pode combinar as duas rotações na geometria para obter um único quaternion que é o resultado. Em seguida, você pode interpolar do original para o quaternion composto para atingir uma transição suave de um para outro.

A biblioteca de utilitários D3DX inclui funções que ajudam você a trabalhar com quatérnions. Por exemplo, a função D3DXQuaternionRotationAxis adiciona um valor de rotação a um vetor que define um eixo de rotação e retorna o resultado em um quatérnion definido por uma estrutura D3DXQUATERNION . Além disso, a função D3DXQuaternionMultiply compõe quatérnions e o D3DXQuaternionSlerp executa interpolação linear esférica entre dois quatérnions.

Os aplicativos Direct3D podem usar as funções a seguir para simplificar a tarefa de trabalhar com quatérnions.

Os aplicativos Direct3D podem usar as funções a seguir para simplificar a tarefa de trabalhar com vetores de três componentes.

Muitas funções adicionais que simplificam tarefas usando vetores de dois e quatro componentes estão incluídas entre as Funções Matemáticas fornecidas pela biblioteca de utilitários D3DX.

Sistemas de coordenadas e geometria