Physically-Based Shading at Disney
Очень подробное описание PBR принципов в шейдинге можно найти в докладах и обзорах от студии Disney. По запросу Physically-Based Shading at Disney можно найти много документов с математическими формулами и графическими примерами.
Поскольку я рассматриваю PBR принципы с потребительской точки зрения, мне интересно только то, как я эти все принципы могу адаптировать в пользовательской практике.
В моей сфере самые актуальные рендер системы это Corona Renderer и V-ray Next. V-Ray мне знаком с первых версий, поэтому все свойства материалов я буду рассматривать и реализовывать на этом движке. Данные свойства кроссплатформенны, т.е. актуальны для любого современного рендер-движка.
По этой причине я не буду впадать в анализ и сравнение всех доступных рендер систем. Люди со светлой головой смогут понять и правильно применить эти свойства не зависимо от используемой платформы.
Disney shading principles
По запросу «Disney shading principles» в Google можно найти кучу графических таблиц с цветными шариками, которые демонстрируют основные принципы, а фактически физические свойства любой поверхности, грамотное применение которых позволяет настроить любой материал.
Я реализовать все диснеевские принципы на практике в рендер-движке V-ray Next и не испытал никаких трудностей, поскольку стандартный шейдер VRayMtl поддерживает их в полной мере, с небольшими "надстройками" в виде дополнительных расширений — VrayBlendMtl, Vray2SidedMtl и т.д.
Diffuse colour
Диффузный цвет (англ. Diffuse — рассеивать свет) базовая характеристика поверхности задающая цвет поверхности освещенной прямым источником света.
В последнее время термин Diffuse colour, применяемый в CG стали подменять\путать\приравнивать к термину Альбедо (англ. Albedo — коэффициент отражательной способности).
В реальности Albedo это комплексная характеристика поверхности — итог совместной работы всех представленных в таблице свойств материала — Specular Colour, Diffuse colour, SSS и т.д., а не просто диффузный цвет поверхности.
Но все же Albedo — важная характеристика и при настройке шейдера следует поглядывать в таблицу известных значений альбедо, для некоторых материалов, что бы не делать дилетантских ошибок.
В иллюстрации ниже упрощенно показана разница между альбедо и диффузным цветом поверхности — разный диффузный цвет, при обесцвечивании дает один и тот же оттенок серого цвета, что говорит о том что при разном диффузном цвете поверхности — альбедо у этих материалов одинаковое.
Diffuse Roughness
Diffuse Roughness (англ. Roughness — шероховатость) В оригинальной таблице Дисней данная опция не представлена. Она используется в студии, но практика её применения достаточно узкая, чтобы уделять ей много внимания. Данную опцию в некоторых рендер системах называют Flatness (англ. Flatness — плоская).
Коротко о том чем обусловлено появление этой опции. Взгляните на изображение луны, фактически это сфера, но мы её видим плоской. Это связано с тем что из-за грубой поверхности и прочего комплекса физических явлений — объем «уплощается» и освещенная отраженным светом луна выглядит плоской. Физика и имплементация в CG описаны здесь. Применение данной опции актуально для грубых, матовых поверхностей — грубая ткань, натуральный камень, рыхлая бумага и т.д.
Subsurface Scattering
Корректней назвать это свойство Translucency (англ. Translucency — светопроницаемость, полупрозрачность), поскольку определение Subsurface Scattering (англ. Subsurface Scattering — подповерхностное рассеивание ) это процесс поведения света внутри полупрозрачного объекта, а транслюцентность это свойство. В V-Ray для реализации этого свойства есть множество решений, как через стандартный шейдер, так и через отдельные решения, такие как VrayALSurfaceMtl, VrayFastSSS2 и т.д.
Вопрос физически корректной имплементации подповерхностного рассеивания открытый, поскольку точных измерений было произведено достаточно мало, но все же в ряде источников можно найти некоторые из них. Эти данные используются в пред установках шейдера VrayFastSSS2 и их можно считать вполне физически корректными.
Metallic
В CG , по типу отражения, шейдеры разделяют на Dielectric и Conductive (или Metallic и Non-Metallic), в русской адаптации с английского языка, можно сказать металлы и… «все остальные», поскольку если переводить дословно, то Conductive это токопроводящий материал, но вода так же проводит ток, а имеет свойства отражения как у диэлектриков, поэтому правильней и понятней применять определение «металлы» и условно «неметаллы».
В V-ray Next, в стандартном шейдере, ввели дополнительную опцию Metalness, но с небольшой оговоркой, физически корректный результат это значение либо 1 либо 0, промежуточные значения, не имеют за собой физически обоснованного контекста.
Specular
Specular (англ. Specular — зеркальный, отражающий и т.д.) С этим термином иногда возникает путаница — в V-Ray за отражающие свойства поверхности отвечает параметр Reflect, а за силу отражения параметр IOR (англ. Index of Refraction — Индекс преломления). Если грубо, то белый цвет рефлекта «включает» зеркальность материала, а IOR определяет силу этого отражения.
На практике физически-корректные значения для «неметаллов» колеблются от 1,3 до 1,8. Особняком стоят некоторые минералы, значение IOR которых достигает 3.
IOR металлов в CG имплементируется совершенно другим способом, здесь можно найти подробную инструкцию как получить максимально точный цвет метала.
Иногда, термин IOR вводит в заблуждение. Индекс преломления актуален и для визуально непрозрачных материалов, таких как металлы. Измерения IOR у таких материалов производят на очень тонкой пленке металла, толщина которой меньше длинны световой волны, при таких размерностях IOR металла становится доступен к измерению. Что бы сделать измерения - пленку наносят на прозрачную поверхность: вода, стекло или пластик.
Правильным, для большинства «неметаллов», считается следующее решение — белый рефлект и подходящее значение IOR. Если IOR не известен то значение 1.5 будет оптимальным. Для водосодержащих материалов (алкоголь, органика, шампуни, человеческая кожа, молоко и т.д.) обычно используют IOR для воды — 1.33 или близкие к этому значения.
Следующее свойство не имеет физического обоснования, но все же используется художниками в студии Дисней.
Specular Tint
Specular Tint — цветное отражение у «неметаллов», цвет устанавливается аналогичным диффузному или близким к нему. Если «притягивать за уши» физическое обоснование этой опции, то этот фейковый прием, позволяет реализовать некоторые свойства тканевых поверхностей «по-быстрому», минуя долгие SSS расчеты.
Все дело в том, что волокна из которых состоят нити тканей транслюцентны, свет проникает вовнутрь, отражается и возвращается обратно на поверхность, «окрашивая» волокна «диффузным» цветом. Это грубая трактовка, но уместная для приблизительного понимания в каких случаях это решение можно использовать на практике.
Specular Roughness
Specular Roughness (англ. Roughness — шероховатость). В V-Ray, по дефолту, за «размытые» отражения отвечает опция Glossy Reflect, это инвертированная опция Specular Roughness. Если необходимо работать в PBR workflow, то в стандартном шейдере VRayMtl есть возможность переключаться между Roughness\Glossy для «размытия» отражений.
Результаты работы Roughness и Glossy идентичны, просто они начинаются с разных концов, но в серединном значении 0,5 они совпадают.
Roughness в V-Ray ввели для того что бы удобно было использовать так называемые «PBR текстуры» задающие параметры для опции Specular Roughness.
Другие части цикла — Что такое PBR?
- Часть I — кратко затронул историю становления термина PBR и вывел главный тезис. PBR это не шейдер и не текстура или какой-то отдельно взятый рендер движок — это в первую очередь принципы и основы современной компьютерной графики, кто-то называет это философией.
- Часть II — была посвящена такому понятию как PBS — Физически корректный шейдинг, как неотделимая часть физически корректного рендеринга. Кратко рассмотрел, что такое BRDF функции.
- Часть III — Реализация GTR (GGX) функции в V-ray. Альтернативные, физически корректные, BRDF модели. Аналитические BRDF модели (Merl библиотека). Коммерческие BRDF решения — VRscans (VrayScanedMtl)
- Часть IV.I — PBR шейдинг в Дисней. Реализация в V-ray
Подписывайте на удобные для себя каналы получения информации по ссылкам: Яндекс.Дзен | ВКонтакте | YouTube | Instagram