Принципиальный BSDF волос (principled hair BSDF)#
Только 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}\) – «Радиальная шероховатость» волос после применения рандомизации (если указано).
- Меланин (melanin)
Абсолютное количество пигмента. Диапазон \([0, 1]\) эквивалентен \([0\%, 100\%]\).
Подсказка
Это линейное отображение базовой экспоненциальной функции:
\[melanin\_qty = -\ln(\max(1.0 - Melanin, 0.0001))\]- Краснота меланина (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}\]- Оттенок (tint)
Цвет, используемый для окрашивания волос после нанесения пигмента меланина. Не подлежит рандомизации. Его можно отключить, установив цвет на белый.
Подсказка
Он преобразуется с помощью приведённого выше цветового отображения и добавляется к коэффициенту поглощения имеющейся концентрации меланина.
- Коэффициент поглощения (absorption coefficient)
Коэффициент ослабления \(\sigma\).
- Коэффициент преломления/индекс рефракции (IOR)
Коэффициент преломления (IOR), определяющий, как сильно луч меняет направление. При значении 1.0 лучи проходят сквозь, как при прозрачном материале; более высокие значения дают большее преломление. Значение «по умолчанию»: \(1.55\).
- Смещение (offset)
Преломляет блеск волоса, увеличивая угол чешуек кутикулы волоса по отношению к стержню волоса. Человеческие волосы обычно имеют низкие значения.
- Случайный цвет (random color)
Концентрация меланина варьируется для каждой пряди на \(СлучайныйКоэффициент\). Диапазон \([0, 1]\) эквивалентен \([0\%, 100\%]\) начальной концентрации меланина.
Подсказка
Концентрация меланина умножается на \(СлучайныйКоэффициент\), где \(СлучайныйКоэффициент= 1.0 + 2.0×(Случайно - 0.5) × СлучайныйЦвет\).
- Нерегулярность шероховатости (random roughness)
Для каждой пряди изменять оба значения шероховатости на \(СлучайныйКоэффициент\). Диапазон \([0, 1]\) эквивалентен \([0\%, 100\%]\) начальных значений шероховатости.
Подсказка
Применяемая формула та же, что и для «случайного цвета».
- Случайно (random)
Генератор случайных чисел. Если здесь не подключена ни одна нода, он автоматически дублирует значение, полученное из
.
Модель Chiang’а (Chiang)#
Модель Чанга основана на гауссовом распределении с отдельной шероховатостью вдоль и перпендикулярно волосам.
- Шероховатость (roughness)
Указать, насколько сильно сглаживаются блики в направлении стержня волоса. Слишком низкие значения сгладят волосы до такой степени, что они будут выглядеть почти металлическими, делая блики похожими на «cветлячков»; а слишком высокие значения приведут к Ламбертовскому виду.
- Радиальная шероховатость (radial roughness)
Указать, насколько сильно распределяются блики в направлении нормали волос. Слишком низкие значения будут концентрировать блики; слишком высокие значения будут рассеивать свет по всей ширине пряди.
Подсказка
Математически этот параметр сопоставляется с коэффициентом масштаба \(s\) логистического распределения (раздел 4.1 [CBTB16]).
- Верхний слой (coat)
Имитация блестящего слоя шерсти, путём уменьшения шероховатости до заданного коэффициента только для первого отражения света (диффузного). Диапазон \([0, 1]\) эквивалентен уменьшению \([0\%, 100\%]\) исходной шероховатости.
Модель 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.
Свойства#
- Параметризация цвета (color parametrization)
Шейдер предоставляет три различных способа, или параметризации, окраски прядей волос.
- Прямое окрашивание (direct coloring):
Выбрать нужный цвет RGB, и шейдер приблизится к необходимому «коэффициенту поглощения» (ниже).
- Концентрация меланина (melanin concentration):
Этот режим определяет цвет как величину и соотношение пигментов, которые обычно встречаются в волосах и мехе, эумеланин (распространён в коричнево-чёрных волосах) и феомеланин (рыжие волосы). Величина «Меланина», а соотношение между ними – во входных данных «Краснота меланина». Увеличение концентрации затемняет волосы (следующие значения указаны для Красноты меланина \(1\)):
Белые (Меланин \(0\))
Светлые (Меланин \(0.25\))
Рыжие (Меланин \(0.5\))
Коричневые (Меланин \(0.75\))
Чёрные (Меланин \(1\))
Кроме того, входы для «Оттенка» позволяют окрашивать волосы в желаемый цвет.
- Коэффициент поглощения (absorption coefficient):
Задаёт коэффициент ослабления \(\sigma_{a}\), применяемый по закону Бугера-Ламберта-Бера. Этот режим предназначен в основном для технических пользователей, которые хотят использовать коэффициенты из литературы без какого-либо преобразования.
Выходы (outputs)#
- BSDF
Стандартный вывод шейдера.
Ссылки#
Этот шейдер является реализацией статей Чанга и соавторов [CBTB16] и Хуанга и соавторов [HHH22].
Chiang, M. J., Bitterli, B., Tappan, C. и Burley, B. (2016), Практичная и контролируемая модель волос и меха для производственной трассировки путей. Computer Graphics Forum, 35: 275-283. doi:10.1111/cgf.12830
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
Huang W., Hullin M.B. Hanika J. (2022), Модель рассеяния волос на основе микрограней. Computer Graphics Forum, 41: 79-91. doi:10.1111/cgf.14588