Principled BSDF

Изначально сиё задумывалось как перевод статьи «Principled Node» из мануала по Blender, однако в ходе работы она дополнялась и личными наблюдениями. Также добавлены скриншоты собственного изготовления для более наглядной демонстрации того или иного параметра.

Principled BSDF появился в Blender 2.79 и объединил в одном месте множество нодов. Основан на диснеевской модели, известной как «PBR», что даёт совместимость с другим софтом — вроде Pixar’s Renderman® и Unreal Engine®. К соответствующим инпутам Principled BSDF'а можно подключить картинки-текстуры, запечённые или нарисованные в других программах.

«Убершейдер» состоит из нескольких «слоёв», позволяющих в том или ином сочетании настроек получать широкий спектр материалов. Базовый «слой» является сочетанием диффуза, металла, подповерхностного рассеивания и Transmission'а. Поверх всего этого specular, sheen и clearcoat.

Примечание. Стремление к совместимости с другим софтом приводит к тому, что некоторые входные параметры дают несколько иной результат по сравнению с аналогичными старыми нодами.

Инпуты

Base Color

Цвет поверхности (диффузный или металлический).

Subsurface

Subsurface Radius. Средне расстояние рассеивания для RGB-каналов.

Subsurface Color - цвет подповерхностного рассеивания.

Пример. Синий Base Color и красный Subsurface Color.

Subsurface == 0.5

Subsurface == 0

Subsurface == 01

Metallic

Соотношение диэлектрика (Diffuse или Specular, возможно с прозрачностью) и металла (полностью отражающий, имеется Fresnel). Простой способ определить, будет создаваемый материал металлическим или нет. Для сравнения — два материала, Base Color один и тот же.

Metallic == 0

Metallic == 1

Specular

Сила отблеска. Определяет отражательную способность поверхности (по направлению нормалей) в наиболее распространённом диапазоне 0-8% («Specifies facing (along normal) reflectivity in the most common 0 - 8% range»).

Подсказка. Если мы создаём реально существующий материал и нам известен его показатель преломления, рассчитать Specular можно по формуле

Например:

0. Вода: IOR == 1.33, specular == 0.25

1. Стекло: IOR == 1.5, specular == 0.5

2. Алмаз: IOR == 2.417, specular = 2.15

Поскольку материалы с отражательной способностью выше 8% таки существуют, в этом поле допускаются значения больше 1.

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

Specular Tint

Слегка подкрашивает отражение отблеска1, используя Base Color. Отражающийся свет остаётся белым.

Пример. Base Color синий, Environment Map красная. Добиться заметного результата удалось только при Metaliness == 0.

Specular Tint == 0

Specular Tint == 1

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

Roughness

Задаёт «шероховатость» поверхности (актуально для отражения diffus'а и specular'а).

Подсказка. При переходе со старого нода GlossyBSDF используй квадратный корень оригинального значения.

Anisotropic

Количество анизотропии для отражения specular'а.

Anisotropic == 0

Anisotropic == 1

Anisotropic Rotation

Вращает анизотропию, при 1.0 делает полный круг.

Подсказка. По сравнению с Anisotropic BSDF, направление светового блика повёрнуто на 90°. Следует добавить к значению 0.25 для корректировки.

Sheen

Используется в материалах вроде ткани. Добавляет «бархата» («Soft velvet like reflection near edges»). Эффект заметен слабо.

Sheen == 0

Sheen == 1

На правом примере верхняя грань чуть посветлее.

Sheen Tint

Соотношение белого и цвета Base Color для Sheen'а.

Clearcoat

Дополнительный белый specular поверх остального. Полезно при создании автомобильной краски и т. п. При использовании карты нормалей на низкополигональной модели ослабляет эффект объёма.

Clearcoat == 0

Clearcoat == 1

Clearcoat Roughness

Индекс преломления. Актуален для материалов с прозрачностью (вода, стекло…). В Википедии можно найти таблицу показателей преломления для различных материалов (ну и матан всякий, если кому интересно).

Transmission

Полная непрозрачность при значении 0, при единице материал превращается в стекло.

Transmission Roughness

Параметр появляется только при выборе типа распределения GGX (вместо дефолтного Multiscatter GGX). Регулирует шероховатость для проходящего света («With GGX distribution controls roughness used for transmitted light»).

Transmission Roughness == 0

Transmission Roughness == 1

Normal

Сюда подключается нормалмапа.

Clearcoat Normal

Нормалмапа Clearcoat'а.

Tangent

Контролирует наклон (tangent) анизотропика.

Distribution

GGX работает быстрее Multiple-scattering GGX, но от этого страдает физическая точность. При включении активируется инпут Transmission Roughness.

Multiple-scattering GGX. Учитывает многочисленные отскоки лучей между «микрофасетами» (Microfacet (computer graphics) == A tiny facet of the surface of an object being rendered, used in approximating reflections, etc. // https://en.wiktionary.org/wiki/microfacet ). В результате выходят более «энергосберегающие» результаты, внешне проявляющиеся в излишнем затемнении («Multiple-scattering GGX. Takes multiple bounce (scattering) events between microfacets into account. This gives a more energy conserving results, which would otherwise be visible as excessive darkening»).

Примеры

Ниже - примеры взаимодействия различных параметров Principled BSDF друг с другом.




© Mapper720

23.02.2018