Con tasas de relleno modernas y renderizado diferido, ¿sigue siendo relevante la eliminación de oclusiones?

10

Por ejemplo, si bien es la GPU actual de primera línea, la GTX 980 tiene una asombrosa velocidad de llenado de 72.1 gigapíxeles / segundo, que con renderizado de atrás hacia adelante y / o comprobaciones de búfer Z, parece casi ridículamente grande, posiblemente incluso a 4k resoluciones. En lo que respecta al recuento de polígonos, las GPU modernas pueden hacer decenas a cientos de millones de triángulos texturizados sin problemas si los agrupa y / o crea instancias correctamente.

Con el renderizado hacia adelante, la cantidad de fragmentos en los que se ejecutarán los sombreadores puede volverse abrumador rápidamente, pero con el renderizado diferido, el costo suele ser más o menos constante, dependiendo de la resolución, y hace tiempo que pasamos un punto donde la mayoría de los sombreados o Los efectos de posprocesamiento se pueden realizar en tiempo real en 1080p.

De cualquier manera, los factores limitantes hoy en día son los recuentos de llamadas de sorteo y los costos de sombreado, que se mantienen relativamente bajos mediante el procesamiento diferido y el procesamiento por lotes de geometría adecuados, por lo que teniendo esto en cuenta, está eliminando más que solo caras traseras y fuera de polígonos frustrum de algún beneficio sustancial? ¿Los costos (tiempo de CPU / GPU, tiempo de programador) no compensarían los beneficios la mayor parte del tiempo?

Llamageddon
fuente
1080p es el nuevo pixel art.
Jessy

Respuestas:

9

Sí, la eliminación de oclusiones todavía vale la pena.

Como mínimo, una llamada de sorteo que se saltó debido al sacrificio es una llamada de sorteo que no tiene que ejecutar el sombreador de vértices. El recuento de triángulos aumenta tan rápido como las GPU comienzan a admitir más triángulos, porque ¿por qué no? Con arquitecturas unificadas, vertex shaders usan exactamente el mismo hardware que hacen los sombreadores de píxeles, por lo que cada vértice que se salta debido a la eliminación selectiva es más tiempo de cómputo para las cosas que usted puede ver. Sin mencionar todas las otras cosas que está omitiendo (procesamiento de llamadas de sorteo de CPU y arrojando los tris lo suficientemente lejos a través de la tubería que el rasterizador se da cuenta de que no necesita sombrearlos).

Hubo una gran presentación de dos estudios de Ubisoft en SIGGRAPH 2015 sobre las canalizaciones de renderización basadas en GPU. En la superficie, se trata de algunas de las cosas que mencionó: procesamiento por lotes e instancias, reduciendo el recuento de llamadas de extracción. Pero una de las principales ventajas que obtienen de una tubería impulsada por GPU es el sacrificio de oclusión increíblemente fino: mejor eliminación de lo que normalmente se vería en el nivel de llamada de extracción. Todo está al servicio de acercarse asintóticamente a la meta: procesar solo lo que puede ver, lo que significa que lo que puede ver se ve mejor.

(También: considere la consola, el móvil, la realidad virtual y el escritorio sin la última y mejor GPU que el dinero puede comprar. Incluso si todos sus tris desaparecen en las fauces de su parte superior GPU en línea, puede que no sea el objetivo principal).

John Calsbeek
fuente
¿Qué pasa cuando los sombreadores de vértices se usan para deformar mallas? (que supongo que es posible ... Soy un novato en la programación de gráficos)
Llamageddon
Además, ¿tiene algún documento sobre el sacrificio de oclusión respaldado por GPU? ¿Es una característica incorporada de las GPU modernas, o ...?
Llamageddon
@Llamageddon En las arquitecturas de GPU modernas, el sombreador de vértices siempre se ejecuta y es perfectamente capaz de deformar las mallas, eso solo transforma los vértices de manera no rígida. Un sombreador de vértices más costoso que hace más trabajo es, por supuesto, más trabajo que se omitirá al eliminarlo. No tengo documentos sobre el sacrificio de oclusión de GPU, la academia parece no estar muy cautivada con eso. No es una característica incorporada de las GPU, solo un uso creativo de la computación.
John Calsbeek
Oh, quise decir ¿qué pasa con el sacrificio de mallas que se deformarán? ¿Los elimina después de ejecutar los sombreadores de vértices? Eso suena complicado.
Llamageddon
@Llamageddon Por lo general, solo los sacrifica contra un volumen conservador. O varios volúmenes más pequeños que se deforman con la malla (por ejemplo, al desollar puede adjuntar volúmenes de eliminación a las juntas).
John Calsbeek
2

Depende del estilo del juego la cantidad de sacrificio que se necesita. Por ejemplo, los tiradores en primera persona se benefician mucho de esto, ya que tienen muchas cosas en el frustrum en cualquier momento, mientras que una vista aérea RTS no lo hace, ya que estás mirando efectivamente un avión con cosas en ese avión. Sin embargo, incluso en un RTS, hacer un "renderizado de profundidad" para eliminar el sobregiro sigue siendo útil.

Alan Wolfe
fuente