Шейдер
Это понятие впервые встречается на программе «Разработка и инженерия для старшеклассников» — примерно 15-17 лет (9-11 класс).
Маленькая программа для видеокарты: она решает, каким цветом закрасить каждую точку картинки — так получаются блеск, тени и вода.
Инструкция для тысяч художников разом: каждому даёшь одно правило «как красить свою точку», и они мгновенно раскрашивают всю картину.
В игре с настройками графики найти эффекты, которые делают шейдеры — блики на воде, тени, свечение — и назвать три из них.
Программа, которую выполняет видеокарта (GPU), чтобы посчитать картинку. Вершинный шейдер двигает точки модели, пиксельный (фрагментный) вычисляет цвет каждого пикселя с учётом текстуры и света. Видеокарта запускает шейдер сразу для тысяч точек параллельно, поэтому эффекты считаются быстро. Именно шейдеры дают воду, блеск металла, свечение и тени.
В Unity назначить объекту два разных материала — обычный и «металл» или «стекло» — и сравнить, как меняется вид объекта при одном и том же свете.
Программа на GPU в графическом конвейере; пишут на HLSL/GLSL (в Unity — ShaderLab и шейдерные графы). Вершинный шейдер переводит вершины модели в экранные координаты, фрагментный считает цвет пикселя, вычислительный — расчёты вне графики. GPU исполняет их массово-параллельно: тысячи потоков разом, поэтому попиксельные эффекты дёшевы, а ветвления if внутри шейдера дороги. Так получают освещение (PBR), тени, постобработку и воду.
В Unity через Shader Graph собрать простой шейдер, который меняет цвет объекта по времени (пульсация), и объяснить, почему расчёт идёт для каждого пикселя параллельно.
Частое заблуждение
«Шейдер — это картинка или фильтр, который накладывают на игру». Нет: шейдер — это программа, которая выполняется на видеокарте и вычисляет положение точек модели и цвет каждого пикселя.