BSDF Principled Hair#

Le Nœud BSDF Principled Hair sous concentration de Melanin.

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\%\).

Inputs#

Common (Points communs)#

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

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\).

IOR

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.

Chiang Model#

Le modèle Chiang est basé sur une distribution gaussienne avec des rugosités distinctes le long des cheveux et orthogonales aux cheveux.

Roughness

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.#

Huang Model#

Le modèle Huang est basé sur la réflexion et la transmission à base de microfacettes et prend en charge les cheveux de forme elliptique.

Aspect Ratio

Le rapport entre le petit axe et le grand axe d’une section elliptique. Les valeurs recommandées sont de 0,8 à 1 pour les cheveux asiatiques, de 0,65 à 0,9 pour les cheveux caucasiens et de 0,5 à 0,65 pour les cheveux africains. L’axe principal est aligné sur la normale de la courbe, qui peut être créée avec des nœuds géométriques, mais n’est pas prise en charge dans les particules de cheveux existants.

Roughness

Rugosité microfacette pour la réflexion et la transmission.

Réflexion

Facteur facultatif pour moduler le premier rebond de la lumière sur la surface des cheveux. La couleur de ce composant est toujours blanche. Gardez ceci à 1.0 pour l’exactitude physique.

Transmission

Facteur facultatif pour moduler le composant de transmission. Capte la couleur du pigment à l’intérieur des cheveux. Gardez ceci à 1.0 pour l’exactitude physique.

Secondary Reflection

Facteur facultatif pour moduler le composant qui est transmis dans les cheveux, réfléchi par l’arrière des cheveux puis transmis hors des cheveux. Ce composant est orienté approximativement autour de la direction entrante et capte la couleur du pigment à l’intérieur des cheveux. Gardez ceci à 1.0 pour l’exactitude physique.

Properties#

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.

Outputs#

BSDF

Sortie Shader standard.

Références#

Ce shader est une implémentation des articles de Chiang et al. [CBTB16] et Huang et al. [HHH22].

[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

[HHH22]

Huang W., Hullin M.B. Hanika J. (2022), A Microfacet-based Hair Scattering Model. Computer Graphics Forum, 41: 79-91. doi:10.1111/cgf.14588