Quais são as matemáticas por trás dos sprites de outdoor em 3D? (foi: matriz de transformação 3D em matriz 2D)

Eu tenho um ponto 3D no espaço. A orientação / posição exata do ponto é expressa através de umMatriz de transformação 4x4.

Eu quero desenhar umoutdoor (3D Sprite) até este ponto.Eu sei a posição projetada (isto é, 3D-> 2D) do ponto; o outdoor está voltado para a câmera, então também é muito útil.O que eu não sei é a escala que o outdoor deveria ter!

Para tornar as coisas mais complexas, oMatriz 4x4 pode ter todos os tipos de transformações: rotação 3D, escala 3D, transposição 3D. Suponha que a câmera seja a mais simples possível: posição em (0,0,0), sem rotação.

Então, posso "extrair" a escala do sprite de outdoor dessa matriz 4x4?

-ESTAVA:

Eu tenho uma matriz 4x4 de transformação afim 3D. Eu preciso convertê-lo (projeto) em uma matriz 3x3 de transformação afim 2D, que se parece com isso:

Rotações 3D são irrelevantes e, se presentes, podem ser descartadas; Estou interessado apenas em tradução e, o mais importante, em redimensionamento.

Alguém pode ajudar com as equações para cada um dosseis 4 valores? (Digamostxty também são conhecidos)

Informação adicional:

O Matrix3D é a transformação global de um ponto 3D, digamos (0,0,0). Seu objetivo é ser projetado em um plano 2D (a tela do computador).

Sei como projetar um ponto 3D para o espaço 2D, o que estou procurando é preservar informações adicionais de transformação além da posição, ou seja,escala: como você deve saber, oescala A propriedade também é alterada ao projetar o ponto em um plano 2D.

Eu também esqueci de mencionar que oprojeção em perspectiva propriedades também são conhecidas, ou seja:

field of view (single value)
focal length (single value)
projection center (viewpoint position - 2D value)

questionAnswers(2)

yourAnswerToTheQuestion