Графика › Основы
Шейдер: функция для каждого пикселя
Нужно знать заранее: Цвет — это числа, Нормаль и свет, UV: как картинка ложится на модель
Шейдер — это маленькая программа, которую видеокарта выполняет для каждой вершины и для каждого пикселя на экране. Граф нод материала в Unreal — это и есть такая программа, только нарисованная. Разберём, как треугольник превращается в пиксели, что шейдер знает о своём пикселе и почему одни материалы почти бесплатны, а другие роняют частоту кадров.
Зачем это
В первых трёх уроках были формулы: умножить цвет на тинт, смешать камень с мхом по маске, посчитать яркость через скалярное произведение, умножить UV. Но где эти формулы живут и кто их выполняет? Их выполняет шейдер.
Когда понимаешь, что граф материала — это программа, которая запускается миллионы раз за кадр, отдельно для каждого пикселя, многое встаёт на места. Становится ясно, почему в материале нельзя «посмотреть на соседний пиксель», почему цвет в инстансе меняется мгновенно, а одна галочка запускает долгую компиляцию, почему трава и дым так дорого стоят и как трава качается на ветру без всякой анимации.