Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Normalmente, as aplicações gráficas 3D usam dois tipos de sistemas de coordenadas cartesianos: canhotos e destros. Em ambos os sistemas de coordenadas, o eixo x positivo aponta para a direita e o eixo y positivo aponta para cima. Você pode se lembrar de qual direção o eixo z positivo aponta apontando os dedos de sua 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, para você ou para longe, é 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 canhoto. 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 percorra no sentido horário a partir da frente. Em outras palavras, se os vértices são v0, v1, v2, passe-os para o Direct3D como v0, v2, v1.
- Use a matriz de visualização para dimensionar o espaço mundial -1 na direção z. Para fazer isso, inverta o sinal do membro _31, _32, _33 e _34 da estrutura D3DMATRIX que você usa para sua matriz de exibição.
Para obter o que equivale a um mundo destro, use o D3DXMatrixPerspectiveRH e funções de D3DXMatrixOrthoRH para definir a transformação de projeção. No entanto, tenha cuidado para usar o correspondente D3DXMatrixLookAtRH função, inverter a ordem de abate de backface e dispor os mapas de cubo de acordo.
Embora as coordenadas canhotas e destras 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 ou para longe do visualizador e o eixo z aponta para cima.
Formalmente, a orientação de um conjunto de vetores de base (ou seja, um sistema de coordenadas) pode ser encontrada pelo cálculo do determinante da matriz definida pelo conjunto particular de vetores de base. Se o determinante é positivo, diz-se que a base é "positivamente" orientada (ou destra). Se o determinante é negativo, diz-se que a base é "negativamente" orientada (ou canhota). Para uma explicação do que é um determinante, consulte qualquer recurso de álgebra linear.
Informalmente, você pode usar a "regra da mão direita/esquerda" para determinar se um determinado conjunto de vetores de base forma um sistema de coordenadas destro ou canhoto.
As operações essenciais realizadas em objetos definidos 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 Transforms (Direct3D 9).
Quando você combina essas operações, os resultados não são comutativos; A ordem em que você multiplica matrizes é importante.
Tópicos relacionados