LerpworksAcademy
На этой странице

Графика › Основы

Шейдер: функция для каждого пикселя

Нужно знать заранее: Цвет — это числа, Нормаль и свет, UV: как картинка ложится на модель

Шейдер — это маленькая программа, которую видеокарта выполняет для каждой вершины и для каждого пикселя на экране. Граф нод материала в Unreal — это и есть такая программа, только нарисованная. Разберём, как треугольник превращается в пиксели, что шейдер знает о своём пикселе и почему одни материалы почти бесплатны, а другие роняют частоту кадров.

Зачем это

В первых трёх уроках были формулы: умножить цвет на тинт, смешать камень с мхом по маске, посчитать яркость через скалярное произведение, умножить UV. Но где эти формулы живут и кто их выполняет? Их выполняет шейдер.

Когда понимаешь, что граф материала — это программа, которая запускается миллионы раз за кадр, отдельно для каждого пикселя, многое встаёт на места. Становится ясно, почему в материале нельзя «посмотреть на соседний пиксель», почему цвет в инстансе меняется мгновенно, а одна галочка запускает долгую компиляцию, почему трава и дым так дорого стоят и как трава качается на ветру без всякой анимации.

Дальше в статье

  1. Что такое шейдер
  2. Путь треугольника на экран
  3. Функция для каждого пикселя
  4. Граф нод — это код
  5. Вершинный шейдер: как трава качается без анимации
  6. Сколько это стоит
  7. Где ломается
  8. Связи: та же идея в других областях
  9. Главное
  10. Проверь себя