Изначально сиё задумывалось как перевод статьи «Principled Node» из мануала по Blender, однако в ходе работы она дополнялась и личными наблюдениями. Также добавлены скриншоты собственного изготовления для более наглядной демонстрации того или иного параметра.
Principled BSDF появился в Blender 2.79 и объединил в одном месте множество нодов. Основан на диснеевской модели, известной как «PBR», что даёт совместимость с другим софтом — вроде Pixar’s Renderman® и Unreal Engine®. К соответствующим инпутам Principled BSDF'а можно подключить картинки-текстуры, запечённые или нарисованные в других программах.
«Убершейдер» состоит из нескольких «слоёв», позволяющих в том или ином сочетании настроек получать широкий спектр материалов. Базовый «слой» является сочетанием диффуза, металла, подповерхностного рассеивания и Transmission'а. Поверх всего этого specular, sheen и clearcoat.
Примечание. Стремление к совместимости с другим софтом приводит к тому, что некоторые входные параметры дают несколько иной результат по сравнению с аналогичными старыми нодами.
Цвет поверхности (диффузный или металлический).
Subsurface Radius. Средне расстояние рассеивания для RGB-каналов.
Subsurface Color - цвет подповерхностного рассеивания.
Пример. Синий Base Color и красный Subsurface Color.
Subsurface == 0.5
Subsurface == 0
Subsurface == 01
Соотношение диэлектрика (Diffuse или Specular, возможно с прозрачностью) и металла (полностью отражающий, имеется Fresnel). Простой способ определить, будет создаваемый материал металлическим или нет. Для сравнения — два материала, Base Color один и тот же.
Metallic == 0
Metallic == 1
Сила отблеска. Определяет отражательную способность поверхности (по направлению нормалей) в наиболее распространённом диапазоне 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.
На практике начиная с какого-то момента дальнейшее увеличение уже не даёт видимых изменений.
Слегка подкрашивает отражение отблеска1, используя Base Color. Отражающийся свет остаётся белым.
Пример. Base Color синий, Environment Map красная. Добиться заметного результата удалось только при Metaliness == 0.
Specular Tint == 0
Specular Tint == 1
Вообще диэлектрики имеют бесцветное отражение, так что этот параметр не является физически корректным и позволяет «подделывать» («Faking») внешний вид материалов со сложной структурой поверхности.
Задаёт «шероховатость» поверхности (актуально для отражения diffus'а и specular'а).
Подсказка. При переходе со старого нода GlossyBSDF используй квадратный корень оригинального значения.
Количество анизотропии для отражения specular'а.
Anisotropic == 0
Anisotropic == 1
Вращает анизотропию, при 1.0 делает полный круг.
Подсказка. По сравнению с Anisotropic BSDF, направление светового блика повёрнуто на 90°. Следует добавить к значению 0.25 для корректировки.
Используется в материалах вроде ткани. Добавляет «бархата» («Soft velvet like reflection near edges»). Эффект заметен слабо.
Sheen == 0
Sheen == 1
На правом примере верхняя грань чуть посветлее.
Соотношение белого и цвета Base Color для Sheen'а.
Дополнительный белый specular поверх остального. Полезно при создании автомобильной краски и т. п. При использовании карты нормалей на низкополигональной модели ослабляет эффект объёма.
Clearcoat == 0
Clearcoat == 1
Индекс преломления. Актуален для материалов с прозрачностью (вода, стекло…). В Википедии можно найти таблицу показателей преломления для различных материалов (ну и матан всякий, если кому интересно).
Полная непрозрачность при значении 0, при единице материал превращается в стекло.
Параметр появляется только при выборе типа распределения GGX (вместо дефолтного Multiscatter GGX). Регулирует шероховатость для проходящего света («With GGX distribution controls roughness used for transmitted light»).
Transmission Roughness == 0
Transmission Roughness == 1
Сюда подключается нормалмапа.
Нормалмапа Clearcoat'а.
Контролирует наклон (tangent) анизотропика.
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