Cuándo deshabilitar la perspectiva correcta interpolación (no perspectiva)

13

En GLSL, la interpolación correcta de perspectiva de los atributos de vértice es la configuración predeterminada: se puede deshabilitar para atributos de vértice específicos utilizando el calificador noperspectivo . Aparte de los sombreadores de postprocesamiento, nunca he visto la perspectiva correcta interpolación deshabilitada: ¿hay algún otro caso de uso? Además, ¿hace alguna diferencia, en cuanto al rendimiento?

gemse
fuente

Respuestas:

15

¡Los casos de uso solo están limitados por tu imaginación! noperspectivesignifica que el atributo se interpola a través del triángulo como si el triángulo estuviera completamente plano en la superficie de la pantalla. Puede hacer una representación de estructura alámbrica antialias con esto: muestre una distancia del espacio de pantalla al borde más cercano como noperspectivevariable y úsela como cobertura en el sombreador de píxeles.

O si está realizando un renderizado no fotorrealista y desea un patrón en el espacio de la pantalla como el medio tono , puede habilitar noperspectivelos rayos UV utilizados para texturizar.

¿Hace alguna diferencia en el rendimiento? Probablemente, pero probablemente no lo notará (con la posible excepción de hardware de gráficos menos potente). La mayoría de las GPU se componen de una serie de etapas de canalización que se ejecutan en paralelo, y en cierto sentido solo paga el costo de la etapa más costosa. Si la rasterización es la parte más limitante para usted, entonces puede ver una diferencia de las divisiones que omite por píxel. Supongo que es más probable cuando se renderiza un mapa de sombras o una preparación previa de profundidad, pero también tienen la menor cantidad de atributos para interpolar.

John Calsbeek
fuente