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

Графика › Кадр

Как движок рисует кадр: проходы и G-буфер

Нужно знать заранее: Шейдер: функция для каждого пикселя, Свойства поверхности: roughness, metallic, AO, Буфер глубины: кто ближе к камере, Прозрачность: Opaque, Masked, Translucent

Кадр в игре — цепочка из десятков проходов: каждый рисует свою картинку, следующие её читают. Главная развилка этой цепочки — считать свет сразу, пока рисуется предмет, или сначала заполнить для каждого пикселя бланк свойств поверхности, G-буфер, и посчитать свет потом. От неё зависят и Buffer Visualization, и свет стекла, и цена сотни ламп. Пятый урок курса «Как движок рисует кадр».

Зачем это

Предпроход глубины и прозрачное после непрозрачного уже встречались. Пора сложить кадр целиком. Без этого непонятно:

  • откуда в меню вьюпорта Unreal картинки Base Color, World Normal, Roughness, Scene Depth;
  • почему у материала фиксированный набор выходов, хотя шейдер мог бы посчитать что угодно;
  • почему стекло освещено проще камня рядом, а декаль не ложится на стекло;
  • почему в одном движке можно зажечь сотню ламп, а в другом у предмета их не больше восьми.

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

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