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

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

Материал: шейдер плюс данные

Нужно знать заранее: Шейдер: функция для каждого пикселя, Свойства поверхности: roughness, metallic, AO

Материал — это не картинка и не «покраска», а пара: программа-шейдер и данные, которые в неё подставляют, — числа, цвета, текстуры. Так устроено в любом движке и в Blender. Разберём, зачем код отделяют от данных, как инстансы наследуют настройки, почему смена цвета мгновенная, а одна галочка запускает компиляцию, и как от устройства материалов зависит скорость кадра.

Зачем это

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

Когда понимаешь, как материал устроен, становится ясно, почему в паке один мастер-материал и семьдесят его инстансов, почему галочка «замораживает» редактор, почему «много материалов» тормозит игру и как построить библиотеку материалов, в которой не утонет команда.

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

  1. Код отдельно, данные отдельно
  2. Что бывает данными
  3. Инстанс: наследование от родителя
  4. Когда меняется код: варианты шейдера
  5. Сколько стоят материалы: вызовы отрисовки
  6. Как устроить библиотеку материалов
  7. Где ломается
  8. Связи: та же идея в других областях
  9. Главное
  10. Проверь себя