Eu li a resposta aqui:
O que a placa gráfica faz com o quarto elemento de um vetor como posição final?
"O quarto componente é um truque para acompanhar a projeção em perspectiva. Quando você faz uma projeção em perspectiva, deseja dividir por z: x '= x / z, y' = y / z, mas essa não é uma operação que pode ser implementado por uma matriz 3x3 operando em um vetor de x, y, z. O truque que se tornou padrão para fazer isso é anexar uma quarta coordenada, w, e declarar que x, y, z será sempre dividido por w depois que todas as transformações forem aplicadas e antes da rasterização ".
mas não entendi por que não conseguimos dividir por z usando uma matriz 3x3?
não podemos simplesmente multiplicar por
1/z 0 0
0 1/z 0
0 0 1/z
para obter [x/z y/z 1]
?