Principled Hair BSDF

Principled Hair BSDF node under Melanin concentration.

Solo Cycles

The Principled Hair BSDF is a physically-based, easy-to-use shader for rendering hair and fur.

Truco

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

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

Teñido de cabello usando la parametrización de coloración Directa (los números arriba son los valores RVA).

Melanin (Melanina)

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))\]
../../../_images/render_shader-nodes_shader_hair-principled_demo-melanin.jpg

Melanina.

Melanin Redness (Rojez de Melanina)

Relación de feomelanina sobre eumelanina. Rango \([0, 1]\) equivalente a \([0\%, 100\%]\).

Consejo

La fórmula de la relación es : \(eumelanina = Melanin*(1.0-MelaninRedness)\), \(feomelanina = Melanin*MelaninRedness\).

Las cantidades resultantes son convertidas (tras la aleatorización, si se especifica) a concentración de absorción a través de la siguiente fórmula (sección 6.1 de [EFHLA11], ajustada para el rango \([0, 1]\)):

\[\begin{split}\sigma_{a} = eumelanina * \left[\begin{matrix} 0.506 \\ 0.841 \\ 1.653 \\ \end{matrix}\right] + feomelanina * \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

Rojez de Melanina.

Tint (Tinte)

Color usado para teñir el pelo tras aplicar el pigmento de melanina. No está sujeto a aleatorización. Puede deshabilitarse estableciendo el color a blanco.

Consejo

Esto se convierte mediante el mapeo de Color arriba, y añadiéndose al coeficiente de absorción de la concentración de melanina.

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

Tinte, usando Melanina 0.1 y los correspondientes valores RVA.

Absorption Coefficient (Coeficiente de Absorción)

Coeficiente de atenuación \(\sigma\).

Roughness (Rugosidad)

Especifica cuánto se suavizarán los destellos en la dirección de la hebra de pelo. Valores demasiado bajos suavizarán el pelo hasta el punto de que parezca casi metálico, haciendo que los destellos parezcan Fireflies (luciérnagas); mientras que dándole valores demasiado altos resultará en una apariencia de tipo Lambert.

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

Rugosidad.

Radial Roughness (Rugosidad Radial)

Specify how much the glints are smoothed in the direction of the hair normal. Too low values will concentrate the glint; while setting it too high will spread the light across the width of the strand.

Consejo

Matemáticamente, este parámetro es mapeado al factor de escala de la distribución logística \(s\) (section 4.1 of [CBTB16]).

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

Rugosidad Radial.

Coat (Capa)

Simula una capa brillante de pelaje, reduciendo la Rugosidad al factor dado, solo para el primer rebote de luz (difusa). El rango \([0, 1]\) es equivalente a una reducción de \([0\%, 100\%]\) de la Rugosidad original.

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

Capa.

IOR

Índice de refracción (IOR) que define cuánto cambia de dirección el rayo. En 1.0 los rayos pasan a través como en un material transparente; valores superiores producen más refracción. El valor por defecto es \(1.55\).

Desplazamiento

Inclina el destello del pelo incrementando el ángulo de las escamas de la cutícula del pelo con respecto a la hebra de pelo. El pelo humano tiene normalmente valores bajos.

Random Color (Color Aleatorio)

Para cada hebra, varía la concentración de melanina en \(RandomFactor\). El rango \([0, 1]\) es equivalente al \([0\%, 100\%]\) de la concentración inicial de melanina.

Consejo

La concentración de melanina es multiplicada por \(randomFactor\), donde \(randomFactor = 1.0 + 2.0*(Random - 0.5) * RandomColor\).

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

Color Aleatorio.

Random Roughness (Rugosidad Aleatoria)

Para cada hebra, varía ambos valores de Rugosidad en \(RandomFactor\). El rango \([0, 1]\) es equivalente al \([0\%, 100\%]\) de los valores iniciales de rugosidad.

Consejo

La fórmula aplicada es la misma que en Random Color.

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

Rugosidad Aleatoria.

Aleatorio

Fuente de los números aleatorios. Si no hay ningún nodo conectado aquí, se instancia automáticamente con el valor obtenido de Hair Info ‣ Random.

Propiedades

Color Parametrization (Parametrización de Color)

El shader proporciona tres formas diferentes, o parametrizaciones, para colorear las hebras del cabello.

Direct Coloring (Coloración Directa)

Al elegir el color RVA deseado, el shader se aproximará al coeficiente de absorción necesario (mas abajo).

Melanin Concentration (Concentración de Melanina)

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 o negro) y feomelanina (cabello rojo). La cantidad se especifica en la entrada Melanin y la relación entre ellas en Melanin Redness. Incrementar las concentraciones oscurece el cabello (los siguientes son con Melanin Redness \(1\)):

  • Blanco (Melanin \(0\))

  • Rubio (Melanin \(0.25\))

  • Rojizo (Melanin \(0.5\))

  • Marrón (Melanin \(0.75\))

  • Negro (Melanin \(1\))

Además, las entradas Tint permiten teñir el cabello con el color deseado.

Absorption Coefficient (Coeficiente de Absorción)

Especifica el coeficiente de atenuación \(\sigma_{a}\), según lo aplicado por la Ley de Beer-Lambert. Este modo está destinado principalmente a usuarios técnicos que desean utilizar coeficientes de la literatura sin ningún tipo de conversión.

Salidas

BSDF

Salida estándar de shader.

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