Principled Hair BSDF#
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}}\]où \(\beta_{N}\) est la rugosité radiale des cheveux après application de la randomisation (si spécifié).
- 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))\]- 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}\]- 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.
- 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\).
- 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.
- Random
Source de nombres aléatoires. Si aucun nœud n’est connecté ici, il est automatiquement instancié avec la valeur obtenue à partir de
.
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.
- 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]).
- 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.
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].
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
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
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