Corrígeme si me equivoco, pero los trabajos Geometry Shader y Tessellation Shader deben generar vértices en la tubería gráfica. Lo que me gustaría saber es cómo son diferentes y cuándo debo usar uno sobre el otro.
shaders
hlsl
geometry
tessellation
César
fuente
fuente
Respuestas:
En realidad no, el 'trabajo' del sombreador de geometría (GS) es la evaluación primitiva.
Los sombreadores de geometría pueden teselarse, pero están limitados por a) un límite superior en el proceso en el número de elementos de salida, yb) la ejecución dentro de un solo sombreador ... por supuesto, la instancia del sombreador alivia el segundo problema, pero los sombreadores de geometría general son son más efectivos en la evaluación primitiva y / o la interpolación de valores que en la teselación.
En comparación, los sombreadores de teselación (TS) se introdujeron específicamente para realizar la densificación de la geometría para que funcionen bien, sean robustos a una gama cada vez más amplia de algoritmos (juego de palabras) y estén menos limitados por los búferes de salida.
Daniel Rákos tiene un buen artículo sobre la evolución de GS / TS: Historia de la teselación de hardware.
Cuándo aplicar cada uno es un caso de 'usar la herramienta adecuada para el trabajo' y así es cómo: Construya una tubería de borrador sin un analizador para obtener primitivas que evalúen correctamente en el VS / GS / FS. Examine por separado la teselación basada en la vista o en la escena, luego inserte el TS delante del GS para densificar las primitivas que luego se pasan a su GS ya diseñado. Si desea probar un TS diferente, cree una alternativa y cámbiela a la tubería ... ¡incluso puede usar un GS instanciado para seleccionar dinámicamente el TS correcto en función de las propiedades de una primitiva!
fuente