Принципиальный 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\%]\).
Подсказка
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}\]- Оттенок (tint)
Цвет, используемый для окрашивания волос после нанесения пигмента меланина. Не подлежит рандомизации. Его можно отключить, установив цвет на белый.
Подсказка
Он преобразуется с помощью приведённого выше цветового отображения и добавляется к коэффициенту поглощения имеющейся концентрации меланина.
- Коэффициент поглощения (absorption coefficient)
Коэффициент ослабления \(\sigma\).
- Шероховатость (roughness)
Указать, насколько сильно сглаживаются блики в направлении стержня волоса. Слишком низкие значения сгладят волосы до такой степени, что они будут выглядеть почти металлическими, делая блики похожими на «cветлячков»; а слишком высокие значения приведут к Ламбертовскому виду.
- Радиальная шероховатость (radial roughness)
Указать, насколько сильно распределяются блики в направлении нормали волос. Слишком низкие значения будут концентрировать блики; слишком высокие значения будут рассеивать свет по всей ширине пряди.
Подсказка
Математически этот параметр сопоставляется с коэффициентом масштаба \(s\) логистического распределения (раздел 4.1 [CBTB16]).
- Верхний слой (coat)
Имитация блестящего слоя шерсти, путём уменьшения шероховатости до заданного коэффициента только для первого отражения света (диффузного). Диапазон \([0, 1]\) эквивалентен уменьшению \([0\%, 100\%]\) исходной шероховатости.
- Коэффициент преломления (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\).
- Нерегулярность шероховатости (random roughness)
Для каждой пряди изменять оба значения шероховатости на \(СлучайныйКоэффициент\). Диапазон \([0, 1]\) эквивалентен \([0\%, 100\%]\) начальных значений шероховатости.
Подсказка
Применяемая формула та же, что и для «случайного цвета».
- Случайно (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»®.
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