Por que o espaço do clipe é sempre referido como "espaço de clipe homogêneo"?

12

Percebi em quase tudo o que li até agora que o termo "espaço do clipe" é precedido pela palavra "homogêneo". Agora entendo que isso significa aproximadamente "tudo a mesma coisa", mas não entendo por que existe a necessidade expressa de dizer "espaço de clipe homogêneo". Quando o espaço do clipe não é homogêneo e por que precisamos nos diferenciar? E, a propósito, o que exatamente significa que estamos chamando de "espaço de clipe homogêneo"? Homogêneo em relação a quê? De que maneira os vértices "são iguais"?

Nathan Ridley
fonte

Respostas:

22

O espaço do clipe é chamado de homogêneo porque os valores nele usam coordenadas homogêneas , ou seja , estão no formato [xyzw] em vez de [xyz] . Para obter o último, a divisão da perspectiva ainda deve ocorrer:

 [x y z w]      [x/w y/w z/w]
homogeneous     normalized device
clip space      coordinates (NDC)

O motivo pelo qual o recorte é realizado antes da divisão da perspectiva é porque as divisões são operações caras. Em vez de testar, por exemplo, |x| > 1 no espaço NDC, podemos apenas testar |x| > |w|no espaço de clipe homogêneo, que fornece exatamente o mesmo resultado e permite realizar o corte antes da divisão.

sam hocevar
fonte
2
Promovido por explicar por que o recorte no espaço homogêneo 4D é mais barato do que no espaço NDC 3D. Acho que isso foi descoberto por Jim Blinn e ME Newell. Mesmo após o recorte, os pontos sobreviventes passam por essa (cara) divisão de perspectiva, no entanto, o número de pontos será significativamente menor após o recorte.
legends2k
O que você quer dizer aqui com "recorte" ou, mais precisamente, com "recorte é realizado"?
"O motivo pelo qual o corte é realizado antes da divisão da perspectiva é porque as divisões são operações caras" erradas. é porque você não pode projetar nada com z <= 0. logicamente não pode atingir o plano de projeção. é também por isso que o plano próximo não pode estar em 0. tudo precisa estar na frente da câmera. então o recorte precisa acontecer antes da projeção.
Puddle