Графика › Кадр
Как движок рисует кадр: проходы и G-буфер
Нужно знать заранее: Шейдер: функция для каждого пикселя, Свойства поверхности: roughness, metallic, AO, Буфер глубины: кто ближе к камере, Прозрачность: Opaque, Masked, Translucent
Кадр в игре — цепочка из десятков проходов: каждый рисует свою картинку, следующие её читают. Главная развилка этой цепочки — считать свет сразу, пока рисуется предмет, или сначала заполнить для каждого пикселя бланк свойств поверхности, G-буфер, и посчитать свет потом. От неё зависят и Buffer Visualization, и свет стекла, и цена сотни ламп. Пятый урок курса «Как движок рисует кадр».
Зачем это
Предпроход глубины и прозрачное после непрозрачного уже встречались. Пора сложить кадр целиком. Без этого непонятно:
- откуда в меню вьюпорта Unreal картинки Base Color, World Normal, Roughness, Scene Depth;
- почему у материала фиксированный набор выходов, хотя шейдер мог бы посчитать что угодно;
- почему стекло освещено проще камня рядом, а декаль не ложится на стекло;
- почему в одном движке можно зажечь сотню ламп, а в другом у предмета их не больше восьми.