Principled Hair BSDF¶
Solo Cycles
El Principled Hair BSDF es un shader basado físicamente y fácil de usar para renderizar cabello y pieles.
Coloreando el Cabello¶
El shade proporciona tres formas diferentes, o parametrizaciones, para colorear las hebras del cabello.
- Direct coloring
Elija el color RGB deseado y el shader se aproximará al coeficiente de absorción necesario (mas abajo).
- Melanin concentration
Este modo define el color como la cantidad y proporción de los pigmentos que se encuentran comúnmente en el cabello o las pieles, eumelanina (prevalente en el cabello marrón-negro) y feomelanina (cabello rojo). La cantidad se especifica en la entrada Melanin y la relación entre ellas en Melanin Redness. El aumento de las concentraciones oscurece el cabello (los siguientes son con Melanin Redness \(1\)):
Blanco (Melanin \(0\)),
Rubio (Melanin \(0.25\))
Rojizo (Melanin \(0.5\))
Marron (Melanin \(0.75\))
Negro (Melanin \(1\))
Además, las entrada Tint permiten teñir el cabello con el color deseado.
- Absorption coefficient
Especifica el coeficiente de atenuación \(\sigma_{a}\), según lo aplicado por la Ley de Beer-Lambert (en ingles). Este modo está destinado principalmente a usuarios técnicos que desean utilizar coeficientes de la literatura sin ningún tipo de conversión.
Aleatorización de propiedades¶
El cabello realista debe tener un mínimo de variación entre cada hebra. El shader permite esto especificando dos valores, Random Color y Random Roughness, que reasigna los valores especificados de Melanin/Roughness al rango \(Color/Roughness \pm Randomization\%\).
Entradas¶
- Color
El color RGB de la hebra. Solo se usa en coloración directa.
Consejo
El color elegido se convierte en un coeficiente de absorción con la siguiente fórmula (sección 4.2 de [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}}\]Donde \(\beta_{N}\) es la rugosidad radial del cabello después de aplicar la aleatorización (si se especifica).
- Melanin
Cantidad absoluta de pigmento. Rango \([0, 1]\) equivalente a \([0\%, 100\%]\).
Consejo
Se trata de una asignación lineal a la función exponencial subyacente:
\[melanin\_qty = -\ln(\max(1.0 - Melanin, 0.0001))\]
- Melanin Redness
Relación de feomelania a eumelanina. Rango \([0, 1]\) equivalente a \([0\%, 100\%]\).
Consejo
La fórmula de la relación es: \(eumelanin = Melanin*(1.0-MelaninRedness)\), \(pheomelanin = Melanin*MelaninRedness\).
The resulting quantities are converted (after randomization, if specified) to absorption concentration via the following formula (section 6.1 of [EFHLA11], adjusted for the range \([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
Color used for dyeing the hair after applying the melanin pigment. It is not subject to randomization. It can be disabled by setting the color to white.
Consejo
This is converted via the Color mapping above and added to the absorption coefficient of the melanin concentration.
- Absorption coefficient
Attenuation coefficient \(\sigma\).
- Roughness
Specify how much the glints are smoothed in the direction of the hair shaft. Too low values will smoothen the hair to the point of looking almost metallic, making glints look like fireflies; while setting it too high will result in a Lambertian look.
- Radial Roughness
Specify how much the glints are smoothed in the direction of the hair tangent. Too low values will concentrate the glint; while setting it too high will spread the light across the width of the strand.
Consejo
Mathematically, this parameter is mapped to the logistic distribution’s scale factor \(s\) (section 4.1 of [CBTB16]).
- Coat
Simulate a shiny coat of fur, by reducing the Roughness to the given factor only for the first light bounce (diffuse). Range \([0, 1]\) equivalent to a reduction of \([0\%, 100\%]\) of the original Roughness.
- IOR
Index of refraction (IOR) defining how much the ray changes direction. At 1.0 rays pass straight through like in a transparent material; higher values give more refraction. Default value is \(1.55\).
- Offset
Tilts the glint of the hair by increasing the angle of the scales of the hair’s cuticle with respect to the hair shaft. Human hair usually has low values.
- Random Color
For each strand, vary the melanin concentration by \(RandomFactor\). Range \([0, 1]\) equivalent to \([0\%, 100\%]\) of the initial melanin concentration.
Consejo
The melanin concentration is multiplied by \(randomFactor\), where \(randomFactor = 1.0 + 2.0*(Random - 0.5) * RandomColor\).
- Random Roughness
For each strand, vary both Roughness values by \(RandomFactor\). Range \([0, 1]\) equivalent to \([0\%, 100\%]\) of the initial roughness values.
Consejo
The applied formula is the same one as for Random Color.
- Random
Random number source. If no node is connected here, it is automatically instanced with the value obtained from
.
Propiedades¶
- Parametrización
Elija uno de los tres modos de coloración descritos anteriormente.
Salidas¶
- BSDF
Standard shader output.
Referencias¶
Este shader es una implementación del paper de Chiang et al. [CBTB16], que se usó en la película 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