BSDF Principled Hair

Le Nœud BSDF Principled Hair

Cycles uniquement

Le Principled Hair BSDF est un shader basé sur la physique et facile à utiliser pour le rendu des cheveux et de la fourrure.

Astuce

Les cheveux réalistes doivent avoir un minimum de variance entre chaque mèche. Le shader permet cela en spécifiant deux valeurs, Random Color et Random Roughness, qui remappent les valeurs de mélanine/rugosité spécifiées sur la plage \(Color/Roughness \pm Randomization\%\).

Entrées

Color

La couleur RVB du brin. Uniquement utilisé en coloration directe.

Indication

La couleur choisie est convertie en un coefficient d’absorption avec la formule suivante (section 4.2 of [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}\) est la rugosité radiale des cheveux après application de la randomisation (si spécifié).

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

Coloration des cheveux à l’aide du paramétrage Coloration directe. (Les chiffres en haut sont les valeurs RVB.)

Melanin (mélanine)

Quantité absolue de pigment. Plage \([0, 1]\) équivalente à \([0\%, 100\%]\).

Indication

Il s’agit d’un mappage linéaire vers la fonction exponentielle sous-jacente:

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

Mélanine

Mélanine Rousse

Rapport de la phéomélanine à l’eumélanine. Plage \([0, 1]\) équivalente à \([0\%, 100\%]\).

Indication

La formule du rapport est: \(eumelanin = Melanin*(1.0-MelaninRedness)\), \(pheomelanin = Melanin*MelaninRedness\).

Les quantités résultantes sont converties (après randomisation, si spécifié) en concentration d’absorption via la formule suivante (section 6.1 of [EFHLA11], ajustée pour la plage \([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

Rousseur mélanique.

Tint (Teinte)

Couleur utilisée pour teindre les cheveux après application du pigment mélanique. N’est pas soumis à la randomisation. Peut être désactivé en définissant la couleur sur blanc.

Indication

C’est converti via la cartographie des couleurs ci-dessus et ajouté au coefficient d’absorption de la concentration de mélanine.

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

Teinte, en utilisant la mélanine 0,1 et les valeurs RVB correspondantes.

Absorption Coefficient

Coefficient d’atténuation \(\sigma\).

Roughness (Rugosité)

Précise à quel point les reflets sont lissés dans le sens de la tige du cheveu. Des valeurs trop faibles vont lisser les cheveux au point d’avoir l’air presque métalliques, faisant ressembler les reflets à des Fireflies; un réglage trop élevé donnera un aspect lambertien.

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

Roughness.

Radial Roughness

Spécifie à quel point les reflets sont lissés dans le sens de la normale des cheveux. Des valeurs trop faibles concentreront le reflet; en le fixant trop haut, la lumière sera diffusée sur toute la largeur du brin.

Indication

Mathématiquement, ce paramètre est mappé au facteur d’échelle de la distribution logistique (section 4.1 de [CBTB16]).

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

Rugosité radiale.

Coat

Simule une fourrure brillante, en réduisant la Roughness au facteur donné uniquement pour le premier rebond léger (diffus). Plage \([0, 1]\) équivalente à une réduction de \([0\%, 100\%]\) de la rugosité d’origine.

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

Fourrure

IOR (Index of Refraction)

Indice de réfraction (IOR) définissant la valeur du changement de direction du rayon. À 1,0, les rayons traversent directement comme dans un matériau transparent; des valeurs plus élevées donnent plus de réfraction. La valeur par défaut est 1,55.

Offset

Incline le reflet du cheveu en augmentant l’angle des écailles de la cuticule du cheveu par rapport à la tige du cheveu. Les cheveux humains ont généralement des valeurs faibles.

Random Color

Pour chaque brin, faire varier la concentration de mélanine par \(RandomFactor\). Plage \([0, 1]\) équivalente à \([0\%, 100\%]\) de la concentration initiale de mélanine.

Indication

La concentration de mélanine est multipliée par \(randomFactor\), où \(randomFactor = 1.0 + 2.0*(Random - 0.5) * RandomColor\).

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

Couleur aléatoire.

Random Roughness

Pour chaque brin, faire varier les deux valeurs de rugosité par \(RandomFactor\). Plage \([0, 1]\) équivalente à \([0\%, 100\%]\) des valeurs de rugosité initiales.

Indication

La formule appliquée est la même que pour Random Color.

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

Rugosité aléatoire.

Random

Source de nombres aléatoires. Si aucun nœud n’est connecté ici, il est automatiquement instancié avec la valeur obtenue à partir de Hair Info ‣ Random.

Propriétés

Color Parametrization

Le shader propose trois manières différentes ou paramétrisations, pour colorer les mèches de cheveux.

Direct Coloring:

Choisir la couleur RVB souhaitée et le shader se rapprochera du coefficient d’absorption nécessaire (ci-dessous).

Melanin Concentration:

Ce mode définit la couleur comme la quantité et le rapport des pigments que l’on trouve couramment dans les cheveux et la fourrure, l’eumélanine (prévalente dans les cheveux bruns-noirs) et la phéomélanine (cheveux roux). La quantité est spécifiée dans l’entrée Melanin, et le rapport entre eux dans Melanin Redness. Des concentrations croissantes assombrissent les cheveux (ce qui suit avec Melanin Redness \(1\)):

  • Blanc (Melanin \(0\))

  • Blonde (Melanin \(0.25\))

  • Rousse (Melanin \(0.5\))

  • Brun (Melanin \(0.75\))

  • Noir (Melanin \(1\))

De plus, les entrées Tint permettent de teindre les cheveux avec la couleur souhaitée.

Absorption Coefficient:

Spécifie le coefficient d’atténuation \(\sigma_{a}\), telle qu’appliquée par Beer-Lambert law. Ce mode est principalement destiné aux utilisateurs techniques qui souhaitent utiliser des coefficients de la littérature sans aucune sorte de conversion.

Sorties

BSDF

Sortie Shader standard.

References

Ce shader est une implémentation de l’article de Chiang et al. [CBTB16], qui a été utilisé dans le film de Disney, “Zootopia”®.

[CBTB16] (1,2,3)

Chiang, M. J. , Bitterli, B. , Tappan, C. and Burley, B. (2016), A Practical and Controllable Hair and Fur Model for Production Path Tracing. Computer Graphics Forum, 35: 275-283. doi:10.1111/cgf.12830

[EFHLA11]

d’Eon, E. , Francois, G. , Hill, M. , Letteri, J. and Aubry, J. (2011), An Energy‐Conserving Hair Reflectance Model. Computer Graphics Forum, 30: 1181-1187. doi:10.1111/j.1467-8659.2011.01976.x