Posso conhecer a diferença entre os três? Um bom exemplo seria acrescentado também.
Posso conhecer a diferença entre os três? Um bom exemplo seria acrescentado também.
Respostas:
As coordenadas do mundo estão na base do seu mundo de jogo. As posições 3D de todos os objetos são finalmente especificadas no espaço mundial, diretamente ou através de uma hierarquia de nós. O chão, prédios, árvores e outras coisas estacionárias serão fixados no espaço do mundo. Os cálculos e a física da jogabilidade serão feitos no espaço do mundo (talvez com alguns recentes locais para fins de precisão, se o mundo for grande). Os eixos das coordenadas do mundo são frequentemente usados para representar as direções da bússola, como X = leste, Y = norte, Z = para cima.
Coordenadas locais são anexadas a um objeto (há um espaço de coordenadas local para cada objeto). Os eixos podem representar algo significativo para o objeto, por exemplo, X = para frente, Y = para a esquerda, Z = para um objeto, como um personagem, veículo, arma etc. que tenha uma orientação inerente. À medida que o objeto se move, o relacionamento entre o espaço local e o mundo (expresso por uma matriz de transformação) muda. Por exemplo, se você virar o carro de cabeça para baixo, o eixo Z local ("para cima" no espaço local) agora estará apontando "para baixo" no espaço do mundo.
As coordenadas da câmera ou da vista são coordenadas locais conectadas à câmera. Este ainda é um sistema de coordenadas 3D, sem nenhuma projeção ou qualquer coisa, mas com os eixos alinhados para corresponder à orientação da tela: geralmente X = direita, Y = para cima, Z = para trás. A transformação do mundo para o espaço de visualização é freqüentemente conhecida como "matriz de visualização".
As coordenadas do espaço do clipe são as coordenadas geradas por um sombreador de vértice: coordenadas às quais a matriz de projeção foi aplicada, mas não a divisão da perspectiva. Este é um espaço 4D (homogêneo). (O mundo, o local e o espaço de visualização são 3D com um w = 1 implícito). É assim porque esse é o espaço no qual ocorre o corte e o descarte de frustum de exibição (pelo menos conceitualmente).
As coordenadas normalizadas do dispositivo , também conhecidas como "espaço na tela", embora esse termo seja um pouco frouxo, são as que você obtém após aplicar a divisão em perspectiva às coordenadas do espaço do clipe. As coordenadas 3D agora representam as posições 2D dos pontos na tela, com X e Y em [-1, 1], juntamente com a profundidade dentro do intervalo do buffer de profundidade, Z em [0, 1] para D3D ou [-1, 1 ] para OpenGL. A orientação do eixo é X = direita, Y = para cima e Z pode ser para frente ou para trás, dependendo da configuração do buffer de profundidade.
As coordenadas do dispositivo são coordenadas de pixel 2D dentro do destino de renderização, com (0, 0) no canto superior esquerdo, X = direita, Y = para baixo. Um chega às coordenadas do dispositivo aplicando a conversão de viewport às coordenadas normalizadas do dispositivo; a viewport controla em qual deslocamento e resolução de pixels a imagem aparece no destino de renderização. É importante notar que as coordenadas do dispositivo não são valores inteiros; eles não são índices de pixels. Eles são um sistema de coordenadas 2D contínuo, usando unidades do tamanho de pixels, mas no qual os valores fracionários (subpixel) são perfeitamente válidos. Os centros de pixel ficam com 0,5 deslocamentos (como 0,5, 1,5, 2,5, ...) neste sistema de coordenadas.