Ше́йдер () — это программа, используемая в трёхмерной графике для определения окончательных параметров объекта или изображения. Это может включать в себя произвольной сложности описание поглощения и рассеяния света, наложения текстуры, отражение и преломление, затенение, смещение поверхности и эффекты пост-обработки.
Программируемые шейдеры гибки и эффективны. Сложные с виду поверхности могут быть визуализированы при помощи простых геометрических форм. Например, шейдеры могут быть использованы для рисования поверхности из трёхмерной керамической плитки на абсолютно плоской поверхности.
Шейдерные языки
Впервые использованные в системе
RenderMan компании
Pixar, шейдеры получали всё большее распространение со снижением цены на компьютеры. Основное преимущество от использования шейдеров — их гибкость, упрощающая и удешевляющая цикл разработки программы, и при том повышающая сложность и достоверность визуализируемых сцен.
Шейдерные языки обычно содержат специальные типы данных, такие как цвет или нормаль. Поскольку компьютерная графика имеет множество сфер приложения, для удовлетворения различных потребностей рынка было создано большое количество шейдерных языков.
Профессиональный рендеринг
Данные шейдерные языки ориентированы на достижение максимального качества визуализации. Описание свойств материалов сделано на максимально абстрактном уровне, для работы не требуется особых навыков программирования или знания аппаратной части. Такие шейдеры обычно создаются художниками с целью обеспечить «правильный вид», подобно наложению текстуры, источников цвета и другим аспектам их работы.
Обработка таких шейдеров обычно ресурсоёмкая задача. Совокупная вычислительная мощность, необходимая для обеспечения их работы, может быть очень велика, так как используется для создания фотореалистичных изображений. Основная часть вычислений при подобной визуализации выполняется большими компьютерными кластерами.
Шейдерный язык RenderMan
Шейдерный язык RenderMan, описанный в
Спецификации Интерфейса RenderMan, является фактическим стандартом для профессионального рендеринга.
API RenderMan, разработанный Робом Куком, используется во всех работах студии
Pixar. Он также является первым из реализованных шейдерных языков.
Шейдерный язык Gelato
Рендеринг в реальном времени
Шейдерный язык OpenGL
Язык прогрммирования Cg
Высокоуровневый шейдерный язык DirectX
Структурные шейдеры реального времени
Вершинные шейдеры
Шейдеры фрагментов
Текстурные шейдеры
Освещение и затенение
Трёхмерная графика
Shader | Shader | Shader | Shader | Shader