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

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

Свойства поверхности: 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, физически корректный рендеринг. Её главная идея: материал описывает вещество, а не картинку. Камень описан один раз и правильно выглядит на солнце, в пасмурный день и в пещере с факелом. Раньше художники рисовали блики и тени прямо в текстуре, и при другом свете картинка разваливалась.

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

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