Para que fins estamos usando a Matriz de projeção Model View? Por que os sombreadores exigem a Matriz de projeção do Model View?
Para que fins estamos usando a Matriz de projeção Model View? Por que os sombreadores exigem a Matriz de projeção do Model View?
Respostas:
As matrizes de modelo, visualização e projeção são três matrizes separadas. Modelos de mapas do espaço de coordenadas local de um objeto para o espaço do mundo, visualização do espaço do mundo para o espaço da câmera, projeção da câmera para a tela.
Se você compor todos os três, pode usar o único resultado para mapear todo o caminho do espaço do objeto ao espaço da tela, tornando-o capaz de descobrir o que você precisa para passar para o próximo estágio de um pipeline programável a partir das posições do vértice de entrada.
Nos antigos pipelines de funcionalidade fixa, você aplicaria o modelo e a visualização juntos e, em seguida, calcularia a iluminação usando outro resultado derivado deles (com algumas correções para que, por exemplo, normais ainda tenham comprimento de unidade, mesmo se você aplicou algum dimensionamento ao objeto ) e, em seguida, aplique a projeção. Você pode ver isso refletido no OpenGL, que nunca separa as matrizes do modelo e da visão - mantendo-as como uma única pilha da matriz do modelo. Portanto, às vezes você também vê isso refletido nos sombreadores.
Portanto: a matriz de projeção da visualização do modelo composto é frequentemente usada por shaders para mapear a partir dos vértices carregados para cada modelo para a tela. Não é obrigatório, existem várias maneiras de conseguir a mesma coisa, é apenas normal porque permite todas as transformações lineares possíveis. Por causa disso, uma versão menos composta dele também era a norma em seu antigo mundo de pipeline fixo.
Porque as matrizes são convenientes. As matrizes ajudam a converter localizações / direções em relação a diferentes espaços (um espaço pode ser definido por 3 eixos perpendiculares e uma origem).
Aqui está um exemplo de um livro especificado por @ legends2k nos comentários.
Os residentes da Cartésia usam um mapa de sua cidade com a origem centrada sensivelmente no centro da cidade e eixos direcionados ao longo dos pontos cardeais da bússola. Os residentes da dislexia usam um mapa de sua cidade com as coordenadas centralizadas em um ponto arbitrário e os eixos correndo em algumas direções arbitrárias que provavelmente pareciam uma boa ideia na época. Os cidadãos de ambas as cidades estão bastante satisfeitos com seus respectivos mapas, mas o Engenheiro de Transporte do Estado atribuiu a tarefa de fazer um orçamento para a primeira rodovia entre Cartésia e Dislexia precisa de um mapa com os detalhes de ambas as cidades, que, portanto, apresenta uma terceira coordenada sistema que é superior a ele, embora não necessariamente a qualquer outra pessoa.
Aqui está outro exemplo,
Suponha que você tenha criado um objeto carro em um jogo com suas posições de vértice usando as coordenadas do mundo. Suponha que você tenha que usar este mesmo carro em algum outro jogo em um mundo totalmente diferente, você tenha que definir as posições novamente e os cálculos ficarão complexos. Isso ocorre porque você novamente tem que calcular as posições da janela, capô, farol, rodas, etc., no carro em relação ao novo mundo.
Veja este vídeo para entender os conceitos de modelo, vista e projeção. (altamente recomendado)
Então veja isso para entender como os vértices no mundo são representados como matrizes e como eles são transformados.