Tengo una duda, ¿que es exactamente eso de los shaders?
Un shader es un pequeño programa que se crea para que se ejecute directamente en la GPU de la tarjeta grafica.
Cuando salieron se hacian en asm ( el asm de la tarjeta), pero luego se estandarizo un poco mas y han surgido lenguajes que generan codigo ejecutable para shaders como por ejemplo
HLSL de DirectX
GLSL de openGL
Cg - no se de donde salio
inicialmente existia un limite maximo de instrucciones por cada shader pero el limite se ha ido extendiendo y a dia de hoy ya es bastanta amplio.
Existen diferentes tipos de shaders:
Vertex Shader := manipula 'efectos' o 'transformaciones' sobre un vertice
Pixel Shader := manipula 'efectos' o 'transformaciones' sobre un pixeles
Y el mas nuevo
Geometry Shader := manipula 'efectos' o 'transformaciones' sobre un vertice o pixel al mismo tiempo... geometry shaders solo estaran disponibles a partir de Direct X 10, por ahora no hay ninguna tarjeta que lo soporte según tengo entendido.
Cada una de las librerias, motores etc.. que soporten shaders incluyen librerias u objtos para subir esos shaders a la gpu.