предназначенная для одной из ступеней графического конвейера, для определения финишных
параметров объекта или изображения. Шейдер отвечает за функцию описания поглощения и рассеяния света, наложения текстуры, а также формирует отражение и преломление, затенение, смещение поверхности и определяет эффекты пост-обработки. Программируемые шейдеры гибки и эффективны. Сложные с виду поверхности могут быть визуализированы при помощи простых геометрических форм. Например, шейдеры могут быть использованы для рисования поверхности из трёхмерной керамической плитки на абсолютно плоской поверхности.Типы шейдеров: вершинные, геометрические и фрагментные (пиксельные).
вершинный шейдер (Vertex Shader) - управляет данными, отвечающими за вершины многогранников. Такими данными, являются координаты вершины в пространстве, текстурные координаты, тангенс-вектор, вектор бинормали, вектор нормали. При помощи вершинного шейдера происходит видовое и перспективное преобразования вершин, генерации текстурных координат, расчета освещения и т. д.
геометрический шейдер (Geometry Shader) - в отличие от вершинного шейдера, способен обработать не только одну вершину, но и целый примитив. Это может быть отрезок (две вершины) и треугольник(три вершины), а при наличии информации о смежных вершинах (adjacency) может быть обработано до шести вершин для треугольного примитива. Кроме того геометрический шейдер способен самостоятельно формировать примитивы, не используя главный процессор. Впервые геометрический шейдер начал использоваться на видеокартах Nvidia 8-й серии.
фрагментный - пиксельный шейдер (Pixel Shader) - работают с фрагментами изображения. Фрагментом изображения в данном случае является пиксел, а сам шейдер определяет набор атрибутов, таких как цвет, глубина, текстурные координаты. Фрагментный шейдер используется на последнем этапе графического конвейера для формирования фрагмента изображения.