BSDF Nguyên Tắc của Tóc (Principled Hair BSDF)#

Principled Hair BSDF node under Melanin concentration.

Duy Cycles (Cycles Only)

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

Mẹo

Realistic hair should have a minimum of variance between each strand. The shader allows for this by specifying two values, Random Color and Random Roughness, which remap the specified Melanin/Roughness values to the range \(Color/Roughness \pm Randomization\%\).

Đầu Vào (Inputs)#

Sắp Đặt Chung (Common)#

Màu Sắc (Color)

The RGB color of the strand. Only used in Direct coloring.

Gợi ý

The chosen color is converted to an absorption coefficient with the following formula (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}}\]

where \(\beta_{N}\) is the radial roughness of the hair after applying randomization (if specified).

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

Coloring hair using the Direct coloring parametrization. (The numbers on top are the RGB values.)#

Mêlanin (Melanin)

Absolute quantity of pigment. Range \([0, 1]\) equivalent to \([0\%, 100\%]\).

Gợi ý

This is a linear mapping to the underlying exponential function:

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

Mêlanin.#

Độ Đỏ của Mêlanin (Melanin Redness)

Ratio of pheomelanin to eumelanin. Range \([0, 1]\) equivalent to \([0\%, 100\%]\).

Gợi ý

The ratio formula is: \(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}\]
../../../_images/render_shader-nodes_shader_hair-principled_demo-melanin-redness.jpg

Độ Đỏ của Mêlanin.#

Nhuốm Màu (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.

Gợi ý

This is converted via the Color mapping above and added to the absorption coefficient of the melanin concentration.

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

Tint, using Melanin 0.1 and the corresponding RGB values.#

Hệ Số Hấp Thụ (Absorption Coefficient)

Attenuation coefficient \(\sigma\).

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

Dịch Chuyển (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.

Ngẫu Nhiên Hóa Màu Sắc (Random Color)

For each strand, vary the melanin concentration by \(RandomFactor\). Range \([0, 1]\) equivalent to \([0\%, 100\%]\) of the initial melanin concentration.

Gợi ý

The melanin concentration is multiplied by \(randomFactor\), where \(randomFactor = 1.0 + 2.0×(Random - 0.5) × RandomColor\).

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

Ngẫu Nhiên Hóa Màu Sắc.#

Ngẫu Nhiên Hóa Độ Nhám (Random Roughness)

For each strand, vary both Roughness values by \(RandomFactor\). Range \([0, 1]\) equivalent to \([0\%, 100\%]\) of the initial roughness values.

Gợi ý

The applied formula is the same one as for Random Color.

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

Ngẫu Nhiên Hóa Độ Nhám.#

Ngẫu Nhiên (Random)

Random number source. If no node is connected here, it is automatically instanced with the value obtained from Hair Info ‣ Random.

Chiang Model#

The Chiang model is based on a Gaussian distribution with separate roughness along and orthogonal to the hair.

Độ Nhám/Ráp/Rối (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.

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

Độ Nhám/Ráp/Rối.#

Độ Nhám Tỏa Tròn (Radial Roughness)

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.

Gợi ý

Mathematically, this parameter is mapped to the logistic distribution's scale factor \(s\) (section 4.1 of [CBTB16]).

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

Độ Nhám Tỏa Tròn.#

Lớp Tráng Bóng (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.

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

Lớp tráng bóng.#

Huang Model#

The Huang model is based on microfacet based reflection and transmission, and supports elliptically shaped hair.

Tỷ Lệ Tương Quan (Aspect Ratio)

The ratio of the minor axis to the major axis of an elliptical cross-section. Recommended values are 0.8~1 for Asian hair, 0.65~0.9 for Caucasian hair, 0.5~0.65 for African hair. The major axis is aligned with the curve normal, which can be created with geometry nodes, but is not supported in legacy particle hair.

Độ Nhám/Ráp/Rối (Roughness)

Microfacet roughness for reflection and transmission.

Phản Quang (Reflection)

Optional factor for modulating the first light bounce off the hair surface. The color of this component is always white. Keep this 1.0 for physical correctness.

Truyền Xạ (Transmission)

Optional factor for modulating the transmission component. Picks up the color of the pigment inside the hair. Keep this 1.0 for physical correctness.

Secondary Reflection

Optional factor for modulating the component which is transmitted into the hair, reflected off the backside of the hair and then transmitted out of the hair. This component is oriented approximately around the incoming direction, and picks up the color of the pigment inside the hair. Keep this 1.0 for physical correctness

Tính Chất (Properties)#

Tham Số Hóa Màu (Color Parametrization)

The shader provides three different ways, or parametrizations, to color the hair strands.

Tô Màu Trực Tiếp (Direct Coloring):

Choose the desired RGB color and the shader will approximate the necessary absorption coefficient (below).

Nồng Độ Melanin (Melanin Concentration):

This mode defines the color as the quantity and ratio of the pigments which are commonly found in hair and fur, eumelanin (prevalent in brown-black hair) and pheomelanin (red hair). The quantity is specified in the Melanin input, and the ratio between them in Melanin Redness. Increasing concentrations darken the hair (the following are with Melanin Redness \(1\)):

  • White (Melanin \(0\))

  • Blonde (Melanin \(0.25\))

  • Reddish (Melanin \(0.5\))

  • Brown (Melanin \(0.75\))

  • Black (Melanin \(1\))

Additionally, the Tint inputs allows to dye the hair with the desired color.

Hệ Số Hấp Thụ (Absorption Coefficient):

Specifies the attenuation coefficient \(\sigma_{a}\), as applied by the Beer-Lambert law. This mode is intended mainly for technical users who want to use coefficients from the literature without any sort of conversion.

Đầu Ra (Outputs)#

Bidirectional Scattering Distribution Function: Hàm Phân Bổ Tán Xạ Hai Chiều

Đầu ra chuẩn của bộ tô bóng.

Nguồn Tham Chiếu (References)#

This shader is an implementation of the papers by Chiang et al. [CBTB16] and 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