Sistemas de coordenadas
Normalmente, os aplicativos gráficos 3D usam um dos dois tipos de sistemas de coordenadas cartesianas: canhoto ou destro. Em ambos os sistemas de coordenadas, o eixo x positivo aponta para a direita e o eixo y positivo aponta para cima.
Coordenadas para canhotos e destros
Você pode se lembrar de qual direção o eixo z positivo aponta apontando os dedos da mão esquerda ou direita na direção x positiva e enrolando-os na direção y positiva. A direção que o polegar aponta, em sua direção ou para longe de você, é a direção que o eixo z positivo aponta para esse sistema de coordenadas. A ilustração a seguir mostra esses dois sistemas de coordenadas.
O Direct3D usa um sistema de coordenadas à esquerda. Embora as coordenadas para canhotos e destros sejam os sistemas mais comuns, há uma variedade de outros sistemas de coordenadas usados em software 3D. Por exemplo, não é incomum que aplicativos de modelagem 3D usem um sistema de coordenadas no qual o eixo y aponta para perto ou para longe do visualizador e o eixo z aponta para cima.
Vértices e vetores
Dado o sistema de coordenadas, uma coordenada x, y e z pode definir um ponto no espaço (um "vértice") ou uma direção 3D (um "vetor").
Uma coleção de vértices pode ser usada para definir linhas e formas. Os objetos mais simples definíveis por vértices são chamados de primitivos, e um objeto mais complexo definido por um conjunto de primitivos é chamado de "malha".
As operações essenciais executadas em malhas definidas em um sistema de coordenadas 3D são translação, rotação e dimensionamento. Você pode combinar essas transformações básicas para criar uma matriz de transformação. Para obter detalhes, consulte Transformações.
Quando você combina essas operações, os resultados não são comutativos; A ordem em que você multiplica as matrizes é importante.
Portabilidade de um sistema de coordenadas destro
Se você estiver portando um aplicativo baseado em um sistema de coordenadas destro, deverá fazer duas alterações nos dados passados para o Direct3D:
- Inverta a ordem dos vértices do triângulo para que o sistema os atravesse no sentido horário a partir da frente. Em outras palavras, se os vértices forem v0, v1, v2, passe-os para o Direct3D como v0, v2, v1.
- Use a matriz de exibição para dimensionar o espaço do mundo em -1 na direção z. Para fazer isso, inverta o sinal do membro _31, _32, _33 e _34 da estrutura de matriz que você usa para sua matriz de exibição.
Tópicos relacionados
Sistemas de coordenadas e geometria