Наша новая игра 8 сентября в раннем доступе на steam



Руководство по PBR, первая часть

Разработчики прекрасного софта Substance Painter (и других полезных пакетов для упрощения процесса создания материалов) также проводят образовательную работу среди 3D населения интернета. Эта статья как раз и является переводом одного из таких образовательных трудов.

СВЕТ И МАТЕРИАЛ

Теория физически корректного рендеринга и шейдинга

         Свет – это сложное явление, проявляющее свойства как волн, так и частиц. В результате, были созданы различные модели описания поведения света. Как художникам по текстуре, нам интересна Лучевая модель света, так как она показывает взаимодействие света и материала. Для нас важно понимать, как лучи взаимодействуют с поверхностью материала потому, что наша задача создать текстуру, корректно отображающую поверхность. Материалы и текстуры, которые мы создаем, взаимодействуют со светом в нашем виртуальном мире, и чем больше мы знаем о поведении света, тем лучше будут выглядеть наши текстуры.

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

 Луч света

         В Лучевой модели света сказано, что луч света имеет траекторию прямой линии в однородной прозрачной среде, например воздух. Также, в ней идется о том, что луч будет вести себя предсказуемо, когда столкнется с поверхностью непрозрачного объекта, или проходя сквозь воздушное либо водное пространство. Это дает возможность визуализировать путь, по которому будет идти луч, так как он движется от начальной точки туда, где он, в конечном итоге, изменяется в другой вид энергии, например в тепло.

         Луч, который сталкивается с поверхностью, называют падающий луч, и угол, под которым он падает, называется угол падения, как показано на рисунке 01.

Падение луча света на ровную поверхность

Рисунок 1.

         Луч света опускается на плоскую поверхность между двумя средами.

         Когда луч света касается поверхности, случаются две вещи, либо одна из них:

  1. Луч света отражается от поверхности и идет в другую сторону. Это происходит согласно закону отражения, в котором говорится, что угол отражения равен углу падения.
  2. Луч света проходит из одной среды в другую по прямолинейной траектории.

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

Поглощение и рассеивание (прозрачность и полупрозрачность)

         Когда световой луч проходит через неоднородное пространство либо полупрозрачный материал, он может быть поглощен или рассеян:

  1. При поглощении яркость света уменьшается так как свет переходит в другую форму энергии (зачастую тепло), также меняется его цвет, потому что количество поглощенного света зависит от длинны волны. Но направление света остается неизменным.
  2. При рассеивании, направление луча изменяется случайным образом, количество отклонений зависит от материала. Но при этом не снижает его яркость. Ушная раковина является отличным примером. Они тонкая (поглощение слабое), так что вы можете видеть рассеянный свет, который проникает с другой стороны уха. Если рассеивание отсутствует, и поглощаемость низкая, то лучи могут проходить напрямую сквозь поверхность, такое как стекло. Например, когда вы плаваете в бассейне, который, мы надеемся чистый, Вы можете открыть глаза и видеть на довольно хорошее расстояние сквозь чистую воду. Тем не менее, давайте представим что какой-то бассейн долго не чистили, и вода там со временем стала грязной. Частички грязи рассеивают свет, что ухудшает прозрачность воды.

         Чем дальше свет проходит в такого рода среду \материал, тем больше он поглощается и рассеивается. Таки образом, плотность объекта играет большую роль в том, как сильно свет будет поглощен или рассеян. Карта толщины может быть использована для того, что бы передать толщину объекта шейдеру, как показано на картинке 02.

Карта толщины используется для подповерхностного рассеивания

Рисунок 2.

Рассеянное и зеркальное отражение

         Зеркальное отражение – это свет, который был отражен от поверхности, как уже было сказано выше. Световой луч отражается от поверхности и идет в другом направлении. Это исходит из Закона Отражения Света, в котором говорится, что на идеально плоской поверхности угол отражения равен углу падения. Тем не менее, важно отметить, что большинство поверхностей неровные, и что направление отражения будет случайным, что в свою очередь зависит от шероховатости поверхности. Это повлияет на направление света, но яркость останется неизменной. Чем грубее поверхность, тем больше и размытей будет выглядеть отражение. Гладкая же поверхность будет отражать точнее, что будет выглядеть ярче или более интенсивней, если смотреть с определенного угла. Однако в обоих случаях отражается одинаковое количество света, как показано на рис. 03.

Как отражение зависит от шероховатости поверхности

Рисунок 3.

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

         Рассеянное отражение – это свет, который был преломлен. Световой луч проходит из одной среды в другую, и рассеивается несколько раз внутри объекта. Затем он отражается от объекта в первичную среду примерно в туже точку, через которую прошел в первый раз, как показано на рис. 04.

Как происходит рассеивание света в материале

Рисунок 4.

         Рассеивающие материалы могут выступать в роле абсорбента, имеется в виду, что если преломленный свет проходит глубоко в материал, у него есть все шансы быть поглощенным полностью. Это означает, что если свет когда либо выйдет, то он возможно не зашел достаточно далеко от начальной точки входа. Вот почему расстоянием от точки входа до точки выхода можно пренебречь. Модель Ламберта, которая обычно используется для рассеянного отражения, не берет во внимание шероховатость поверхности, но есть такие, которые не закрывают на это глаза, например модель Орена-Наяра.

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

Теория микрограней

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

         Мы определяем шероховатость поверхности как ее грубость. На самом деле, ее могут называть по-разному, например гладкость, глянцевость либо микроповерхность, в зависимости от контекста, но все они описывают один и тот же аспект поверхности, суб-тексел геометрической детали.

         Шероховатость поверхности прописана либо в картах глянцевости, либо в картах неровностей, в зависимости от того, что Вам нужно. Физически корректный BRDFоснован на теории микрограней, в которой говорится, что поверхность состоит из по-разному повернутых маленьких плоских поверхностей, которые называют микрограни. Каждая из этих маленьких поверхностей отражает свет в одном направлении соответственно её нормали, как показано на рис. 05.

Как происходит отражение от микрограней поверхности

Рисунок 5.

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

         Шероховатости поверхности на микроскопическом уровне рассеивают свет. Например, расплывчатое отражение из-за размытых лучей света. Лучи не отражаются параллельно, и мы получаем зеркальное размытое отражение, показанное на рис. 06.

Как выглядит гладкая поверхность под микроскопом

Рисунок 6.

Цвет

         Цвет поверхности (иначе говоря, цвет который мы видим) существует благодаря волнам, которые излучаются источником света, они частично поглощаются объектом, а частично отражаются зеркально и рассеяно. Отражающиеся волны и есть цвет, который мы видим.

         Например, кожура яблока в основном отражает красный свет. Только красные волны отражаются обратно, в то время как другие поглощаются, как показано на рис. 07.

Какие длины волн поглощаются чтобы поверхност была красной

Рисунок 7.

         Так же имеется светлое отражение того же цвета что и источник, потому что у материалов на подобии яблочной кожуры, которая не является электрическим проводником, зеркальное отражение практически не зависит от волн. По этому, у такого рода материалов зеркальное отражение не подкрашивается. Чуть позже мы рассмотрим и другие виды материалов.

         Читайте продолжение в самой интересной половине этой статьи - Руководство по PBR, часть 2.

Оригинал здесь.



Подпишитесь на обновление блога (вот 3 причины для этого).
Введите ваш e-mail:





Вам понравилась статья? Хотите отблагодарить автора? Расскажите о ней друзьям.
Или подпишитесь на обновление блога по E-Mail.

Введите ваш e-mail (используется только для отправления обновлений блога):

комментария 4 к статье “Что такое PBR: физически корректный рендеринг и шейдинг”

  1. (дублирую)
    Добрый день, коллеги!
    Люди часто спрашивают, чем отличаются «новые» текстуры PBR от старых «текстур» Vray. Но у меня другой вопрос:

    Как реализован риалтайм рендер PBR в сравнении с риалтайм Vray RT? А именно почему мы сразу видим финальный результат во вьюпорте PBR движков, в то время, как в окне Vray мы видим просчет семплов и результат выводится не мгновенно?

    • Как вы их называете PBR движки — это по сути упрощённые игровые движки.
      V-Ray RT — это движок для рейтрейсинга (не игровой).
      Игровой движок строит картинку не так, как движок для рейтрейсинга.
      Игровой движок не пускает лучи из камеры. А значит, если поставить два отражающих шарика один за другим, то на дальнем шарике мы не увидим спину первого шарика.

      • Кому тоже интересен этот вопрос, рекомендую покурить тему Deferred Shading & Lighting. Очень познавательно о том, как рендерит видеокарта.

  2. Отличная статья. Спасибо. Но мало тонкостей.
    И с точки зрения настоящего освещения и с точки зрения реализации.
    Очень бы хотелось продолжений.

Извините, в данный момент комметарии закрыты.

© 2008 - 2018 3dyuriki.com
Для связи со мной 3dyuriki@gmail.com