Share via


Sistemas de coordenadas

Normalmente, os apps de elementos gráficos 3D usam um dos dois tipos de sistemas de coordenadas cartesianas de esquerda e direita. Em ambos os sistemas de coordenadas, o eixo x positivo aponta para a direita e o eixo y positivo aponta para cima.

Coordenadas à esquerda e à direita

Você pode lembrar para qual direção o eixo z positivo aponta, apontando os dedos de sua mão direita ou esquerda na direção x positiva e curvando-os na direção y positiva. A direção do seu polegar aponta em sua direção ou para longe de você, é a direção em que o eixo z positivo aponta para esse sistema de coordenadas. A ilustração a seguir mostra esses dois sistemas de coordenadas.

ilustração dos sistemas de coordenadas cartesianas à esquerda e à direita

O Direct3D usa um sistema de coordenadas à esquerda. Apesar das coordenadas de esquerda e direita serem os sistemas mais comuns, há uma variedade de outros sistemas de coordenadas usados no software 3D. Por exemplo, não é incomum para apps de modelagem 3D usar um sistema de coordenadas no qual o eixo y aponta para o visualizador ou para longe dele, 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").

Um conjunto de vértices pode ser usado para definir linhas e formas. Os objetos mais simples que podem ser definidos por vértices são chamados de Primitivas, e um objeto mais complexo definido por um conjunto de primitivas é chamado de "malha".

As operações essenciais realizadas em malhas definidas em um sistema de coordenadas 3D são conversã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ê faz multiplicação das matrizes é importante.

Portabilidade de um sistema de coordenadas destro

Se você estiver fazendo a portabilidade de um app que se baseia em um sistema de coordenadas à direita, você deve fazer duas alterações nos dados passados para o Direct3D:

  • Inverter a ordem dos vértices de triângulos, de modo que o sistema os percorra em 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 visualização para dimensionar o espaço do mundo em -1 na direção z. Para fazer isso, inverte o sinal do membro _31, _32, _33 e _34 da estrutura de matriz que você usa para sua matriz de exibição.

Sistemas de coordenadas e geometria