Графика › Основы
Свойства поверхности: roughness, metallic, AO
Нужно знать заранее: Цвет — это числа, Нормаль и свет, Шейдер: функция для каждого пикселя
Почему мокрый камень темнее сухого и блестит, почему у красного пластика блик белый, а золото отражает жёлтым. Разберём, что на самом деле значат каналы Roughness, Metallic, Specular и AO. Вместе с BaseColor это несколько чисел, которые описывают вещество — как оно обходится со светом. Сам свет по этим числам досчитывает движок.
Зачем это
В уроке про свет яркость считалась одной формулой: BaseColor × свет × косинус угла. Так выглядят матовые вещи: бумага, сухая земля, штукатурка. Но камень у воды блестит, по металлу бегут отражения, а в луже видно небо. Одним косинусом этого не описать.
В выходе материала Unreal рядом с Base Color стоят Metallic, Specular, Roughness и Ambient Occlusion. С ними часто обращаются наугад: крутят Roughness, пока не станет «красиво», ставят Metallic 0.5 «для блеска», обнуляют Specular, чтобы сделать матовым. Получается мир из пластика, чёрный металл в тени и трава, которая светится на солнце. Когда знаешь, что каждый канал значит физически, числа выбираются, а не подбираются.
Модель, на которой всё это стоит, называется PBR — physically based rendering, физически корректный рендеринг. Её главная идея: материал описывает вещество, а не картинку. Камень описан один раз и правильно выглядит на солнце, в пасмурный день и в пещере с факелом. Раньше художники рисовали блики и тени прямо в текстуре, и при другом свете картинка разваливалась.