Projeção descendente de uma malha 4D imaginária na tela

11

Como exercício mental, estou tentando imaginar projetando uma malha 4D arbitrária na tela (2D).

Eu estou supondo que um único triângulo 4D ainda consistisse em apenas 3 pontos, no entanto cada um desses 3 pontos seria definido por coluna com 4 dimensões.

Faria mais sentido definir uma matriz de projeção para mapear primeiro o espaço 4D para o espaço 3D e depois o OpenGL faria sua própria projeção a partir desses dados para o espaço 2D?

Ou seria melhor planejar apenas projetar de 4 para 2 diretamente?

Muito Obrigado.

bitcruncher
fonte
Interessante, existe algum contexto de desenvolvimento de jogos?
AttackingHobo
é apenas exploratório por enquanto, mas em última análise, sim.
bitcruncher
Até você adicionar algum tipo de contexto de desenvolvimento de jogo, vou votar para fechar por estar fora do tópico.
AttackingHobo
Como uma observação lateral, as coordenadas homogêneas com as quais as APIs gráficas lidam são um tipo especial de espaço 4D, no qual todos os pontos em uma linha através da origem são considerados o mesmo ponto em 3D. Ou seja, <kx, ky, kz, k> é o mesmo ponto <x, y, z> para todos os k.
Lars Viklund #
4 eixos de rotação? Ta brincando né?
Subb

Respostas:

7

A generalização multidimensional de um triângulo é um N-Simplex , aqui está um vídeo de uma projeção de tal objeto. Aqui está outro vídeo interessante de um hipercubo 4D.

Esta página da wiki é um bom ponto de partida se você quiser aprender mais sobre a quarta dimensão e como visualizar esses objetos. Também vincula uma página wiki a uma lista de jogos 4D .

Com relação à sua pergunta sobre a projeção: Este artigo explica a matemática das matrizes de projeção ortográfica e de perspectiva para dimensões mais altas. Outro grande artigo é a Visualização em Quatro Espaços de Objetos 4D, de Steven Richard Hollasch. Particularmente o parágrafo "4.1: Visão geral de alto nível da projeção 4D para 2D" responde à sua pergunta de projeção em detalhes e vem com o código fonte.

Finalmente, aqui está um renderizador N-dimensional usando o OpenGL que vem com o código fonte completo.

Maik Semder
fonte
Não sei por que você trataria um triângulo assim. Assim como uma malha 3D contém um triângulo (em oposição aos tetraedros), uma malha 4D pode conter formas 2D como um triângulo.
Mikael Öhman
@Mikael, apenas por causa do exercício mental da pergunta, seria mais interessante usar uma generalização 4D de um triângulo 2D ', a rotação de um objeto desse tipo parece incrível. No entanto, você está certo, pode-se usar um triângulo simples no espaço 4D.
Maik Semder
Obrigado por uma resposta muito completa. Na verdade, o mais fascinante foi o grande número de jogos / projetos em vigor desde o início dos anos 90.
bitcruncher