Принципиальный BSDF волос (principled hair BSDF)

Нода *Principled Hair BSDF* с :abbr:`концентрацией меланина (Melanin concentration)`.

Только Cycles

Principled Hair BSDF – это физически корректный, простой в использовании шейдер для рендеринга волос и меха.

Совет

Реалистичные волосы должны иметь минимальную дисперсию между каждой прядью. Шейдер позволяет это сделать, с настройкой двух значений: «Случайный цвет» и «Нерегулярность шероховатости», которые переназначают указанные значения меланина/шероховатости в диапазон \(Цвет/Шероховатость \pm Рандомизация\%\).

Входы (inputs)

Цвет (color)

Цвет RGB пряди. Используется только при «Прямом окрашивании».

Подсказка

Выбранный цвет преобразуется в «Коэффициент поглощения» по следующей формуле (раздел 4.2 [CBTB16]):

\[\sigma_{a} = \frac{\ln(Color)} {\left(5.969 - 0.215\beta_{N} + 2.532\beta_{N}^{2} - 10.73\beta_{N}^{3} + 5.574\beta_{N}^{4} + 0.245\beta_{N}^{5}\right)^{2}}\]

где \(\beta_{N}\) – «Радиальная шероховатость» волос после применения рандомизации (если указано).

../../../_images/render_shader-nodes_shader_hair-principled_demo-color.jpg

Окрашивание волос с использованием параметризации прямого окрашивания. (Числа сверху – значения RGB.)

Меланин (melanin)

Абсолютное количество пигмента. Диапазон \([0, 1]\) эквивалентен \([0\%, 100\%]\).

Подсказка

Это линейное отображение базовой экспоненциальной функции:

\[melanin\_qty = -\ln(\max(1.0 - Melanin, 0.0001))\]
../../../_images/render_shader-nodes_shader_hair-principled_demo-melanin.jpg

Меланин.

Краснота меланина (melanin redness)

Соотношение феомеланина и эумеланина. Диапазон \([0, 1]\) эквивалентен \([0\%, 100\%]\).

Подсказка

The ratio formula is: \(eumelanin = Melanin*(1.0-MelaninRedness)\), \(pheomelanin = Melanin*MelaninRedness\).

Полученные величины преобразуются (после рандомизации, если указано) в концентрацию поглощения по следующей формуле (раздел 6.1 [EFHLA11], скорректированной для диапазона \([0, 1]\)):

\[\begin{split}\sigma_{a} = eumelanin * \left[\begin{matrix} 0.506 \\ 0.841 \\ 1.653 \\ \end{matrix}\right] + pheomelanin * \left[\begin{matrix} 0.343 \\ 0.733 \\ 1.924 \\ \end{matrix}\right]\end{split}\]
../../../_images/render_shader-nodes_shader_hair-principled_demo-melanin-redness.jpg

Краснота меланина.

Оттенок (tint)

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

Подсказка

Он преобразуется с помощью приведённого выше цветового отображения и добавляется к коэффициенту поглощения имеющейся концентрации меланина.

../../../_images/render_shader-nodes_shader_hair-principled_demo-tint.jpg

Оттенок с использованием Меланина 0.1 и соответствующих значений RGB.

Коэффициент поглощения (absorption coefficient)

Коэффициент ослабления \(\sigma\).

Шероховатость (roughness)

Указать, насколько сильно сглаживаются блики в направлении стержня волоса. Слишком низкие значения сгладят волосы до такой степени, что они будут выглядеть почти металлическими, делая блики похожими на «cветлячков»; а слишком высокие значения приведут к Ламбертовскому виду.

../../../_images/render_shader-nodes_shader_hair-principled_demo-roughness.jpg

Шероховатость.

Радиальная шероховатость (radial roughness)

Указать, насколько сильно распределяются блики в направлении нормали волос. Слишком низкие значения будут концентрировать блики; слишком высокие значения будут рассеивать свет по всей ширине пряди.

Подсказка

Математически этот параметр сопоставляется с коэффициентом масштаба \(s\) логистического распределения (раздел 4.1 [CBTB16]).

../../../_images/render_shader-nodes_shader_hair-principled_demo-radial-roughness.jpg

Радиальная шероховатость.

Верхний слой (coat)

Имитация блестящего слоя шерсти, путём уменьшения шероховатости до заданного коэффициента только для первого отражения света (диффузного). Диапазон \([0, 1]\) эквивалентен уменьшению \([0\%, 100\%]\) исходной шероховатости.

../../../_images/render_shader-nodes_shader_hair-principled_demo-coat.jpg

Верхний слой.

Коэффициент преломления (IOR)

Коэффициент преломления (IOR), определяющий, как сильно луч меняет направление. При значении 1.0 лучи проходят сквозь, как при прозрачном материале; более высокие значения дают большее преломление. Значение «по умолчанию»: \(1.55\).

Смещение (offset)

Преломляет блеск волоса, увеличивая угол чешуек кутикулы волоса по отношению к стержню волоса. Человеческие волосы обычно имеют низкие значения.

Случайный цвет (random color)

Концентрация меланина варьируется для каждой пряди на \(СлучайныйКоэффициент\). Диапазон \([0, 1]\) эквивалентен \([0\%, 100\%]\) начальной концентрации меланина.

Подсказка

The melanin concentration is multiplied by \(randomFactor\), where \(randomFactor = 1.0 + 2.0*(Random - 0.5) * RandomColor\).

../../../_images/render_shader-nodes_shader_hair-principled_demo-random-color.jpg

Случайный цвет.

Нерегулярность шероховатости (random roughness)

Для каждой пряди изменять оба значения шероховатости на \(СлучайныйКоэффициент\). Диапазон \([0, 1]\) эквивалентен \([0\%, 100\%]\) начальных значений шероховатости.

Подсказка

Применяемая формула та же, что и для «случайного цвета».

../../../_images/render_shader-nodes_shader_hair-principled_demo-random-roughness.jpg

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

Случайно (random)

Генератор случайных чисел. Если здесь не подключена ни одна нода, он автоматически дублирует значение, полученное из Информация о волосах ‣ Случайно Hair Info ‣ Random.

Свойства (properties)

Параметризация цвета (color parametrization)

Шейдер предоставляет три различных способа, или параметризации, окраски прядей волос.

Прямое окрашивание (direct coloring):

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

Концентрация меланина (melanin concentration):

Этот режим определяет цвет как величину и соотношение пигментов, которые обычно встречаются в волосах и мехе, эумеланин (распространён в коричнево-чёрных волосах) и феомеланин (рыжие волосы). Величина «Меланина», а соотношение между ними – во входных данных «Краснота меланина». Увеличение концентрации затемняет волосы (следующие значения указаны для Красноты меланина \(1\)):

  • Белые (Меланин \(0\))

  • Светлые (Меланин \(0.25\))

  • Рыжие (Меланин \(0.5\))

  • Коричневые (Меланин \(0.75\))

  • Чёрные (Меланин \(1\))

Кроме того, входы для «Оттенка» позволяют окрашивать волосы в желаемый цвет.

Коэффициент поглощения (absorption coefficient):

Задаёт коэффициент ослабления \(\sigma_{a}\), применяемый по закону Бугера-Ламберта-Бера. Этот режим предназначен в основном для технических пользователей, которые хотят использовать коэффициенты из литературы без какого-либо преобразования.

Выходы (outputs)

BSDF

Стандартный вывод шейдера.

Ссылки

This shader is an implementation of the paper by Chiang et al. [CBTB16], which was used in the Disney film, «Zootopia»®.

[CBTB16] (1,2,3)

Chiang, M. J., Bitterli, B., Tappan, C. и Burley, B. (2016), Практичная и контролируемая модель волос и меха для производственной трассировки путей. Computer Graphics Forum, 35: 275-283. doi:10.1111/cgf.12830

[EFHLA11]

d’Eon, E., Francois, G., Hill, M., Letteri, J. и Aubry, J. (2011), Энергосберегающая модель отражения волос. Computer Graphics Forum, 30: 1181-1187. doi:10.1111/j.1467-8659.2011.01976.x