Найти тему
CG Channel

Что такое PBR? Часть IV.I

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 colour
Diffuse colour

Diffuse Roughness

Diffuse Roughness (англ. Roughness — шероховатость) В оригинальной таблице Дисней данная опция не представлена. Она используется в студии, но практика её применения достаточно узкая, чтобы уделять ей много внимания. Данную опцию в некоторых рендер системах называют Flatness (англ. Flatness — плоская).

Коротко о том чем обусловлено появление этой опции. Взгляните на изображение луны, фактически это сфера, но мы её видим плоской. Это связано с тем что из-за грубой поверхности и прочего комплекса физических явлений — объем «уплощается» и освещенная отраженным светом луна выглядит плоской. Физика и имплементация в CG описаны здесь. Применение данной опции актуально для грубых, матовых поверхностей — грубая ткань, натуральный камень, рыхлая бумага и т.д.

Diffuse Roughness
Diffuse Roughness

Subsurface Scattering

Корректней назвать это свойство Translucency (англ. Translucency — светопроницаемость, полупрозрачность), поскольку определение Subsurface Scattering (англ. Subsurface Scattering — подповерхностное рассеивание ) это процесс поведения света внутри полупрозрачного объекта, а транслюцентность это свойство. В V-Ray для реализации этого свойства есть множество решений, как через стандартный шейдер, так и через отдельные решения, такие как VrayALSurfaceMtl, VrayFastSSS2 и т.д.

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

Subsurface Scattering
Subsurface Scattering

Metallic

В CG , по типу отражения, шейдеры разделяют на Dielectric и Conductive (или Metallic и Non-Metallic), в русской адаптации с английского языка, можно сказать металлы и… «все остальные», поскольку если переводить дословно, то Conductive это токопроводящий материал, но вода так же проводит ток, а имеет свойства отражения как у диэлектриков, поэтому правильней и понятней применять определение «металлы» и условно «неметаллы».

В V-ray Next, в стандартном шейдере, ввели дополнительную опцию Metalness, но с небольшой оговоркой, физически корректный результат это значение либо 1 либо 0, промежуточные значения, не имеют за собой физически обоснованного контекста.

Metallic
Metallic

Specular

Specular (англ. Specular — зеркальный, отражающий и т.д.) С этим термином иногда возникает путаница — в V-Ray за отражающие свойства поверхности отвечает параметр Reflect, а за силу отражения параметр IOR (англ. Index of Refraction — Индекс преломления). Если грубо, то белый цвет рефлекта «включает» зеркальность материала, а IOR определяет силу этого отражения.

На практике физически-корректные значения для «неметаллов» колеблются от 1,3 до 1,8. Особняком стоят некоторые минералы, значение IOR которых достигает 3.

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

Иногда, термин IOR вводит в заблуждение. Индекс преломления актуален и для визуально непрозрачных материалов, таких как металлы. Измерения IOR у таких материалов производят на очень тонкой пленке металла, толщина которой меньше длинны световой волны, при таких размерностях IOR металла становится доступен к измерению. Что бы сделать измерения - пленку наносят на прозрачную поверхность: вода, стекло или пластик.

Specular
Specular

Правильным, для большинства «неметаллов», считается следующее решение — белый рефлект и подходящее значение IOR. Если IOR не известен то значение 1.5 будет оптимальным. Для водосодержащих материалов (алкоголь, органика, шампуни, человеческая кожа, молоко и т.д.) обычно используют IOR для воды — 1.33 или близкие к этому значения.

Следующее свойство не имеет физического обоснования, но все же используется художниками в студии Дисней.

Specular Tint

Specular Tint — цветное отражение у «неметаллов», цвет устанавливается аналогичным диффузному или близким к нему. Если «притягивать за уши» физическое обоснование этой опции, то этот фейковый прием, позволяет реализовать некоторые свойства тканевых поверхностей «по-быстрому», минуя долгие SSS расчеты.

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

Specular Tint
Specular Tint

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.

Specular Roughness
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
  • Часть IV.II — PBR шейдинг в Дисней. Реализация в V-ray
  • Часть IV.III — PBR шейдинг в Дисней. Реализация в V-ray
  • Часть V — PBR текстуры (Заключительная часть цикла)

Подписывайте на удобные для себя каналы получения информации по ссылкам: Яндекс.Дзен | ВКонтакте | YouTube | Instagram

-9