¿Por qué el espacio de recorte siempre se denomina "espacio de recorte homogéneo"?

12

He notado en casi todo lo que he leído hasta ahora que el término "espacio de clip" se antepone con la palabra "homogéneo". Ahora entiendo que más o menos significa "de todos modos", pero no entiendo por qué existe la necesidad expresa de decir "espacio de clip homogéneo". ¿Cuándo el espacio de recorte no es homogéneo y por qué necesitamos diferenciar? Y para el caso, ¿qué significa exactamente que lo llamamos "espacio de clip homogéneo"? ¿Homogéneo en relación a qué? ¿De qué manera los vértices son "todos iguales"?

Nathan Ridley
fuente

Respuestas:

22

El espacio de recorte se denomina homogéneo porque los valores que contiene utilizan coordenadas homogéneas , es decir , tienen la forma [xyzw] en lugar de [xyz] . Para obtener este último, la división de perspectiva todavía debe ocurrir:

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

La razón por la que se realiza el recorte antes de la división en perspectiva es porque las divisiones son operaciones costosas. En lugar de probar, por ejemplo, |x| > 1 en el espacio NDC, simplemente podemos probar |x| > |w|en un espacio de recorte homogéneo, que proporciona exactamente el mismo resultado y permite realizar el recorte antes de la división.

sam hocevar
fuente
2
Votado por explicar por qué el recorte en el espacio homogéneo 4D es más barato que en el espacio 3D NDC Creo que esto fue visto por primera vez por Jim Blinn y ME Newell. Incluso después del recorte, los puntos supervivientes sufren esta división de perspectiva (costosa), sin embargo, el número de puntos ahora será significativamente menor después del recorte.
legends2k
¿Qué quiere decir aquí con "recorte" o, más precisamente, con "recorte se realiza"?
"La razón por la que se realiza el recorte antes de la división en perspectiva es porque las divisiones son operaciones costosas", está mal. es porque no puedes proyectar nada con z <= 0. lógicamente no puede golpear el plano de proyección. Esta es también la razón por la cual el plano cercano no puede estar en 0. Todo debe estar enfrente de la cámara. entonces el recorte tiene que suceder antes de la proyección.
Charco