Принципиальный 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\%]\).

Подсказка

Формула соотношения: \(эумеланин = Меланин×(1.0-КраснотаМеланина)\), \(феомеланин = Меланин×КраснотаМеланина\).

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

\[\begin{split}\sigma_{a} = эумеланин × \left[\begin{matrix} 0.506 \\ 0.841 \\ 1.653 \\ \end{matrix}\right] + феомеланин × \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\).

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

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

Смещение (offset)

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

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

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

Подсказка

Концентрация меланина умножается на \(СлучайныйКоэффициент\), где \(СлучайныйКоэффициент= 1.0 + 2.0×(Случайно - 0.5) × СлучайныйЦвет\).

../../../_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.

Модель Chiang’а (Chiang)#

Модель Чанга основана на гауссовом распределении с отдельной шероховатостью вдоль и перпендикулярно волосам.

Шероховатость (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

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

Модель Huang’а (Huang)#

Модель Хуанга основана на отражении и пропускании света на основе микрограней и поддерживает волосы эллиптической формы.

Соотношение сторон (aspect ratio)

Соотношение малой оси к большой оси эллиптического поперечного сечения. Рекомендуемые значения: 0.8~1 для волос азиатского типа, 0.65~0.9 для волос европейского типа и 0.5~0.65 для волос африканского типа. Большая ось выровнена по кривой нормали, которую можно создать с помощью нод геометрии, но она не поддерживается в устаревших волосах-частицах.

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

Микрогранная шероховатость граней для отражения и пропускания.

Отражение (reflection)

Необязательный коэффициент для модуляции первого отражения света от поверхности волос. Цвет этого компонента всегда белый. Для физической корректности – оставьте 1.0.

Светопропускаемость (transmission)

Необязательный коэффициент для модуляции компонента пропускаемости света. Подбирает цвет пигмента внутри волоса. Для физической корректности – оставьте 1.0.

Вторичное отражение (secondary reflection)

Необязательный фактор для модуляции компонента, который проходит в волосы, отражается от их задней части и затем пропускается из волоса. Этот компонент ориентирован приблизительно вокруг входящего направления и улавливает цвет пигмента внутри волоса. Для физической корректности – оставьте 1.0.

Свойства (properties)#

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Выходы (outputs)#

BSDF

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

Ссылки#

Этот шейдер является реализацией статей Чанга и соавторов [CBTB16] и Хуанга и соавторов [HHH22].

[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

[HHH22]

Huang W., Hullin M.B. Hanika J. (2022), Модель рассеивания волос на основе микрограней. Computer Graphics Forum, 41: 79-91. doi:10.1111/cgf.14588