Описание принципов PBR: какие правила оптики учитывает физически-корректный рендеринг

Немного теории о поведении света.

Мы изучили видео с YouTube-канала Brackeys о принципах, на которых строится физически-корректный рендеринг (Physically Based Rendering). В игровой графике любой объект перед попаданием в финальное изображение должен пройти через процедуру рендеринга. Для такой визуализации могут использоваться разные подходы.

PBR — это набор правил для рендеринга, который учитывает поведение света в реальности для создания правдоподобного изображения. Автор видео на YouTube-канале Brackeys описал основные правила, которыми пользуется PBR, и объяснил, почему графика получается настолько реалистичной. Рассказываем самое главное.

В реальном мире мы видим объекты благодаря тому, что свет падает на них, а глаз улавливает отражённые лучи. Так как все материалы по-разному отражают свет, мы можем отличить, например, дерево от металла.

Кроме того, есть несколько особенностей поведения света, влияющих на изображение, которые мы улавливаем глазами. PBR учитывает правила распространения света в реальности и имитирует их в графике для создания правдоподобных объектов. Есть несколько основных принципов, которые учитывает эта концепция. Вот несколько из них.

​При отражении света угол падающего луча равен углу отражённого луча. Но это работает только с идеальной зеркальной поверхностью
​При отражении света угол падающего луча равен углу отражённого луча. Но это работает только с идеальной зеркальной поверхностью
​В реальности одни материалы поглощают лучи...
​В реальности одни материалы поглощают лучи...
​... а другие рассеивают
​... а другие рассеивают
​При рассеивании свет расходится во все стороны, из-за чего глаз человека видит сам материал
​При рассеивании свет расходится во все стороны, из-за чего глаз человека видит сам материал

Это приводит нас к мысли, что у объектов, которые отлично отражают свет, нельзя увидеть материал, из которого они состоят. Это работает и в обратную сторону — мы отлично видим сам материал, если объект плохо отражает свет.

У зеркальных объектов нельзя рассмотреть материал, из которого они сделаны​
У зеркальных объектов нельзя рассмотреть материал, из которого они сделаны​

Один из главных принципов PBR — объект не может отразить больше света, чем он получил. Также важное значение имеет гладкость материала.

Описание принципов PBR: какие правила оптики учитывает физически-корректный рендеринг

Разные материалы по-разному отражают свет. При этом особенно выделяются металлические объекты, которые отражают 60-90% падающего на них света, а остальные материалы — 0-20%. Другая особенность металлов — они могут «подкрашивать» отражённый свет, например, это делает медь или золото.

Также есть свойство Френеля, которое заключается в том, что сила отражений зависит от угла зрения — чем ближе зеркальная поверхность к наблюдателю, тем слабее получится само отражение.

​Пример свойства отражения Френеля
​Пример свойства отражения Френеля
Из-за эффекта Френеля отражения сильнее всего на границах объектов
Из-за эффекта Френеля отражения сильнее всего на границах объектов
Отражение в реальности. Вблизи видно плитку под слоем воды, а вдали её уже не разобрать​
Отражение в реальности. Вблизи видно плитку под слоем воды, а вдали её уже не разобрать​

Эффект Френеля больше заметен на гладких поверхностях, но при этом он есть на всех объектах. И PBR учитывает эту особенность.

На всех объектах есть несовершенства и изъяны, которые можно описать, как микроповерхность. Она играет большую роль в том, как свет отражается от материала.

Чем больше матовость объекта, тем более смазанным выглядит отражение
Чем больше матовость объекта, тем более смазанным выглядит отражение

Концепция PBR используется во многих современных игровых движках и редакторах графики: Unreal Engine 4, Unity, Frostbite, Substance Designer и так далее. При этом PBR везде работает по похожему принципу.

Например, в Unity есть стандартный шейдер, который автоматически настраивает все эти аспекты, чтобы материал выглядел реалистично. По-умолчанию шейдер позволяет создать металлический эффект, но это не значит, что он применим только для создания металлических объектов.

Описание принципов PBR: какие правила оптики учитывает физически-корректный рендеринг

В стандартном шейдере можно настраивать цвет, «metalness» и гладкость. Но не всегда нужно, чтобы этот эффект покрывал весь объект, поэтому используются текстурные карты, на которых указаны конкретные области применения.

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

Для изменения типа поверхности применяется рельефное текстурирование (normal maps), которое помогает усиливать детализацию без использования дополнительной геометрии. Это отлично подходит для изображения ударов, царапин и трещин.

Карты высот (heightmaps) применяются, чтобы показать разные по высоте уровни ландшафта. Heightmaps работают по тому же принципу, что и normal maps, но их рендеринг происходит на основе более сложной техники.

Occlusion maps используются, чтобы добавить объектам объём за счёт отображения освещённых и затенённых участков. Для этого применяются чёрно-белые текстуры.

Концепция PBR учитывает поведение света в реальности, поэтому позволяет художникам значительно упростить создание фотореалистичной графики. Это значит, что разработчикам не нужно идти на разные хитрости, чтобы предметы выглядели правдоподобно. Тем не менее PBR лишь имитирует многие физические принципы, поэтому его возможности не безграничны, а результат всё так же зависит от умений и знаний художника.

129129
122 комментария

Очень поверхностно. Местами не верно, местами полный бред. Про фринеля абсолютно не верно. Не так это работает. Расстояние от поверхности до наблюдателя не играет никакой роли.

44

Ну, там уточнили, что от угла зависит

Комментарий недоступен

3

Это классика)) особенно не круто когда человек будет искать материал а везде подобные...

2

НЕ НАДО ПЕРЕВОДИТЬ ТЕРМИНЫ!

15

Потому что запекание к пирожкам не имеет отношения! Тогда уж шейдеры давайте называть - затенителями!

7

это почему же?

1