Esta resposta está muito tempo depois do fato, mas desde que eu achei isso no google, talvez isso ainda ajude alguém. Eu só quero esclarecer o que JasonD e Notabene estavam dizendo: É muito mais fácil fazer cálculos de recorte (descubra o que você deve ver e o que não deve ver por causa da maneira como está olhando, a que distância está, etc.). .). Em vez de verificar se as coisas cruzam os planos nas bordas do seu ponto de vista de visualização, basta comparar o x, y, z de tudo com xMax, xMin, yMax, ect. , já que você simplesmente tem um cubo. É um pouco mais complicado se você deseja exibir apenas parte de algo, mas a matemática ainda é melhor com um cubo de unidade do que com um frustum.
Algumas coisas que eu achei enganosas em outras respostas:
-Você não está cortando os lados do frustum da vista, você está deformando-o em um cubo usando transformações de matriz homogêneas.
-Não estamos convertendo para uma tela 2D com esta etapa. Esta etapa não é necessária. Teoricamente, poderíamos fazer todo o nosso trabalho sem converter primeiro o frustum em um cubo, o que seria mais intuitivo, mas mais difícil de matemática - mas os gráficos são sobre cálculos muito rápidos, pois existem muitos cálculos por segundo para o jogo médio / o que quer que seja.
Mais detalhes: não é necessariamente um cubo de unidades para o qual estamos convertendo, apenas uma caixa retangular para que nossos cálculos de max-min funcionem. De fato, na aula, usamos uma caixa em que a câmera fica voltada para o eixo z, z passa de 0 a 1, x passa de -1 a 1 e y passa de -1 a 1. Em geral, em matemática 1, 0, e -1 são bons números para facilitar os cálculos, presumo que é por isso que não passamos de -100 a 100 ou algo assim.
TLDR: Facilita o recorte.
Edit: bobobobo tem a essência disso. Tudo é triângulos, geralmente: D.
Fonte: Tendo uma aula de gráficos da universidade