Mejor respuesta
Los sombreadores son programas especializados que utiliza el hardware de gráficos para producir imágenes. Por lo general, se subdividen en programas más pequeños que manejan diferentes aspectos del proceso de renderización del hardware.
Hay varias variedades diferentes, pero los más comunes son pixel y vertex sombreadores.
Los El sombreador de vértices es responsable de aplicar cualquier cambio a la geometría de entrada. Por lo general, eso significa proyectar geometría 3-d en el plano de proyección 2-d de la imagen de salida, pero a veces puede agregar algún tipo de movimiento de procedimiento o deformación a la geometría aquí también.
El sombreador de píxeles toma la salida del sombreador de vértices y genera los píxeles que aparecerán en la imagen final. La mayoría de las veces, esto se basa en alguna variación de la ecuación de renderizado , que compara la dirección de orientación del píxel con las direcciones de las fuentes de luz y las propiedades de la superficie. , pero podría ser cualquier cosa, desde una función de ruido aleatorio hasta una simulación compleja o trazado de rayos.
La parte de esto que es más diferente de la programación ordinaria es que tanto los sombreadores de vértices como los de píxeles son extremadamente paralelizado. Cada sombreador de vértices se ejecutará en todos los vértices de los datos de entrada al mismo tiempo; cada sombreador de píxeles se ejecutará en cada píxel de la imagen final al mismo tiempo. Eso significa que es difícil hacer algo con un píxel en función del estado de otro: todos los píxeles se ejecutarán al mismo tiempo de forma independiente entre sí. Los efectos que necesitan ser conscientes del contexto a menudo tienen que ejecutar varios sombreadores de píxeles uno tras otro, almacenando los resultados en imágenes temporales.
Esto le brinda una descripción general decente y muy básica de cómo funciona:
Respuesta
Un «sombreador de píxeles» (que es un mal nombre para un «sombreador de fragmentos») es un pequeño programa que se ejecuta en paralelo muchas veces en la GPU para determinar el color de los fragmentos. En términos básicos, los fragmentos son conceptualmente muy similares a los píxeles, de ahí la confusión de nombres.
Cuando la geometría se envía para dibujar, los vértices son transformados por el «sombreador de vértices». La tubería construirá primitivas como triángulos o líneas, y después de que se hayan proyectado en la pantalla y se hayan recortado, el rasterizador calculará todos los píxeles que se tocan e interpolará cualquier valor entre vértices como colores, coordenadas de textura o normales. . El sombreador de fragmentos se ejecuta para cada uno de los fragmentos para obtener el color final. Se realizan otras operaciones como la prueba de profundidad / alfa / plantilla y luego los fragmentos posiblemente se promedien juntos en el caso de antialiasing multimuestra, antes de convertirse finalmente en colores de píxeles reales para escribir o mezclar en el búfer de pantalla.
Imagen tomada de aquí .