Substance Painter - Введение в физически-корректный рендеринг
Всем привет!
В этом уроке я расскажу вам о физически-корректном методе рендеринга (или "парадигме"), в частности, в редакторе Substance Painter.
Substance Painter позволяет нам разрабатывать Материалы, которые соответствуют модели физически-корректного рендеринга (Physically Based Rendering - PBR; иногда вы также встретите сокращение PBS, что означает физически-корректное затенение (Physically Based Shading), конечно же, применительно к поверхностям объектов).
Материал PBR сделан из нескольких Текстур (изображений, накладываемых на 3D объекты); здесь мы рассмотрим только то, что они из себя представляют, и, прежде всего, как они объединяются друг с другом в процессе разработки материала PBR в редакторе Substance. Мы должны понимать эти вещи, чтобы иметь возможность уверенно создавать и настраивать наши Материалы.
Чтобы не делать этот урок слишком теоретическим, я расскажу об основных элементах PBR и о том, как они воплощаются в Substance, используя 3D-модель, уже предоставленную с Материалами и текстурами в этой программе. Однако, для обучения по этому уроку данная модель вам особо не понадобится.
Парадигма физически-корректного рендеринга, как следует из названия, основана на физическом подходе: как оно происходит в реальном мире.
Вы можете присваивать Материалам два вида рабочих поверхностей: Металлик и Зеркальность.
В первом случае (Металлик) мы должны разделять поверхности на металлические и не-металлические. В зависимости от этих характеристик меняется поведение всех каналов.
Во втором случае (Зеркальность) мы задаем интенсивность и цветовой оттенок зеркальных отражений, чтобы определить, как будет вести себя свет при взаимодействии с поверхностью объекта.
В частности, при режиме PBR "Металлик" (который используется в этом примере), внешний вид поверхности определяется некоторыми особенностями, наиболее важными из которых являются:
- его природа: металлический или не-металлический ("диэлектрик");
- его "Базовый Цвет", который в металлическом объекте показывает интенсивность отражений света, а в не-металлических объектах он указывает базовый цвет поверхности, без эффектов освещения;
- уровень блеска / гладкости ("Глянец"; в противоположность "Шероховатости") поверхности, в ее различных точках.
К этим характеристикам, наблюдаемым в реальном мире, добавляются некоторые, которые удобны в виртуальном мире; например, с помощью специальных изображений Текстур, таких как "Карты нормалей" или "Карты высот", можно смоделировать наличие деталей, не моделируя их посредством геометрии (чтобы держать небольшое количество вершин, ребер и граней - и, следовательно, использовать меньше вычислительных ресурсов на этапе рендеринга, в частности, в видеоиграх и других приложениях реального времени).
Деревянная бочка, которую я использую в этом видео, позволяет нам на примере одного объекта изучить, как эта базовая информация преобразуется в Текстуры и объединяет их в Материал.
Предварительный просмотр готового Материала, примененного к объекту в 3D-окне, открывается клавишей "M" (Материал), или путем выбора пункта "Материал" в раскрывающемся списке в правом верхнем углу 3D-окна.
Как видите, у нас есть как металлические (железо), так и не-металлические (дерево) элементы, что позволит нам оценить различия, с которыми эти два типа материалов соотносятся, в определении их базового цвета и цветов зеркальных отражений в парадигме PBR.
Чтобы просмотреть отдельные информационные каналы (которые преобразуются в такое же количество изображений Текстур, нанесенных на поверхность объекта), мы можем несколько раз нажать клавишу "C" или выбрать интересующий нас канал в раскрывающемся списке в правом верхнем углу 3D-окна.
Давайте начнем с канала "Металлик", который определяет, какие части Материала должны рассматриваться как металл, а какие - нет. В частности, с использованием изображения в градациях серого, где белый используется для чистого металла, а черный - для абсолютного не-металла; в случае с бочкой у нас также есть серые области, потому что материал, используемый для металлических частей - "старое железо" - должен представлять собой, как следует из названия, старое изношенное железо, возможно, с пылью или ржавчиной, которые уменьшают степень "металличности" его поверхности.
Деревянные части, с другой стороны, выглядят абсолютно черными или, скорее, не-металлическими, как это и должно быть.
Давайте перейдем ко второму фундаментальному каналу PBR: к базовому цвету.
Как вы можете видеть, этот информационный канал представляет простой цвет объекта через Цветную Текстуру, без эффектов освещения или затенения: это так называемые "плоские" Текстуры.
Цвета металлических и деревянных деталей имеют одинаковую интенсивность: да, цвета разные, но они не так уж сильно отличаются, даже если они относятся к совершенно различным веществам ...
Причина в том, что программой Substance во время процессов затенения и рендеринга с использованием канала "Металлик" (и его Текстуры) осуществляется разграничение, как должны обрабатываться световые отражения в зависимости от того, относятся ли они к металлической или не-металлической поверхности: полутона Базового цвета металлических деталей фактически определяют интенсивность отражений света (и цветовой оттенок), которые должны быть переданы этим отражениям.
Материал "Старое железо" - это "грязный" материал, поэтому эффект не очень значителен. Но посмотрим, как все изменится в различных каналах и в конечном результате, если я вставлю Материал "Чистый Алюминий" между материалами дерево и металл, и если я отключу лежащий ниже материал "Старое железо":
- в конечном результате металлические детали выглядят НАМНОГО более отражающими, чем раньше;
- в канале "Металлик" металлические части окрашены в чистый белый цвет: это очень чистый металл;
- в канале "Базовый Цвет" металлические части почти белые: это признак того, что в этих точках интенсивность зеркальных отражений будет максимальной и там не будет цветового оттенка.
Теперь посмотрим, что произойдет, если свести к нулю значение параметра "Металлик" в материале "Чистый Алюминий": "полосы" побелели, они больше не отражаются, как раньше, и выглядят как белые пластиковые объекты.
Теперь мы установим "Металлик" в 1, но уменьшим значение Базового Цвета: полосы сохраняют типичную "отражательную способность" металла, но постепенно становятся темнее.
Суть в том, что в режиме "Металлик", как у нас, Базовый Цвет объекта сам по себе недостаточен для определения того, как и насколько сильно поверхность будет отражающей, потому что требуется еще указать, является ли он металлом или нет; y металлической поверхности интенсивность Базового Цвета также является интенсивностью зеркальных отражений света, в то время как у не-металлической поверхности Базовый Цвет определяет только ее собственный цвет, как это происходит на деревянных деталях бочки.
Я оставляю материал "Чистый Алюминий" активированным, а "Старое железо" - деактивированным, чтобы показать вам эффекты третьего фундаментального канала Материала: Шероховатость.
Шероховатость (которая является противоположностью Глянца), как и карта Металлик, представлена изображением в градациях серого, где белый - это максимальная шероховатость, а черный - полностью глянцевая, идеально отражающая поверхность; на самом деле в PBR реализовано идеальное зеркало с металлическим материалом с чистым белым цветом и шероховатостью "0", как это видно сейчас на видео.
Увеличивая значение шероховатости, мы сделаем поверхность менее гладкой, и, следовательно, это сделает ее отражения более "рассеянными" (размытыми). Это относится как к металлам, так и к не-металлам.
Теперь я удаляю материал "Чистый Алюминий" и активирую "Старое железо", чтобы вернуться к исходной конфигурации проекта и взглянуть на некоторую дополнительную информацию, которая методом Компьютерной Графики позволяет добавлять детали к поверхностям во время рендеринга; то есть, без необходимости физически моделировать их при помощи геометрии.
Я выбираю "Нормаль + Высота + Сетка" из селектора в правом верхнем углу 3D-окна.
Этот вид показывает комбинацию нескольких информационных каналов, которые изменяют моделируемые детали на поверхности объекта; без этих деталей поверхности объекта выглядели бы плоскими, не очень убедительными, особенно в деревянных деталях.
В частности, в примере, который я показываю на экране, детали поверхности на деревянных элементах, в основном, реализуются слоем "Волокна"; чтобы увидеть различия во внешнем виде поверхности с этой информацией и без нее, достаточно отключить эти эффекты на вкладке "Слои", тут же наблюдая изменения в 3D-окне в любом из режимов - "Нормаль + Высота + Сетка" или "Материал".
Различия становятся более очевидными, если объект освещается "косым" светом, а не фронтальным.
Эти эффекты также присутствуют в металлических деталях, в слоях "Железо" и "Грани" материала "Старое железо".
Что ж, на этом мы закончим вводный урок по основам PBR в Substance Painter. Надеюсь, вы нашли его интересным и полезным.
Скоро увидимся!