Principled Hair BSDF(プリンシプルヘアーBSDF)

Principled Hair BSDF node under Melanin concentration.

Hair (ヘアー) BSDF

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

Tip

リアルな髪の毛は、各毛束間で最小限の差異を持つ必要があります。シェーダーは、 Random ColorRandom Roughness の 2つの値を指定することでこれを可能にし、指定されたMelanin / Roughness値を範囲に再マッピングします。\(Color/Roughness \pm Randomization\%\).

入力

共通

Color(カラー)

毛束のRGBカラー。 Direct coloring (ダイレクトカラーリング)でのみ使用されます。

ヒント

選択した色は、次の式で吸収係数に変換されます( [CBTB16] のセクション4.2 )。

\[\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}\) はランダム化を適用した後のヘアの放射状粗さです。(指定されている場合)

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

Direct coloring (ダイレクトカラーリング)を使用してヘアを色付けします。(上の数字はRGB値です。)

Melanin (メラニン)

色素の絶対量。範囲 \([0, 1]\)\([0\%, 100\%]\) に相当。

ヒント

これは、基になる指数関数へのリニアマッピングです。

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

Melanin (メラニン)

Melanin Redness (メラニンの赤成分)

フェオメラニンとユーメラニンの比率。範囲 \([0, 1]\)\([0\%, 100\%]\) に相当。

ヒント

比率の式は次の通りです。 \(eumelanin = Melanin*(1.0-MelaninRedness)\), \(pheomelanin = Melanin*MelaninRedness\)

結果の量は、(指定されている場合はランダム化した後)次の式( [EFHLA11] のセクション6.1)を介して吸収濃度に変換され、 \([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

Melanin Redness (メラニンの赤成分)

Tint (チント)

メラニン色素をつけた後、髪を染めるのに使う色。ランダム化の対象ではありません。色を白に設定することで無効化します。

ヒント

これは上記のカラーマッピングで変換され、メラニン濃度の吸収係数に追加されます。

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

色合い、Melanin値の0.1および対応するRGB値を使用。

Absorption Coefficient (吸収係数)

吸収係数 \(\sigma\)

IOR

レイが方向を変える量を定義する屈折率( IOR )。1.0では、レイは透明なマテリアルのように直進します。値が大きいほど屈折が大きくなります。デフォルト値は \(1.55\)

Offset(オフセット)

毛幹に対する毛のキューティクルの鱗の角度を大きくすることにより、髪の輝きを傾けます。通常、人間の髪の毛の値は低い値です。

Random Color (ランダムカラー)

各毛束について、メラニン濃度を \(RandomFactor\) において変化させます。\([0, 1]\) の範囲は初期メラニン濃度の \([0\%, 100\%]\) に相当します。

ヒント

メラニン濃度は次のように \(randomFactor\) によって乗算されます。\(randomFactor = 1.0 + 2.0*(Random - 0.5) * RandomColor\).

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

Random Color (ランダムカラー)

Random Roughness (ランダムな粗さ)

各毛束について、両方の粗さを \(RandomFactor\) において変化させます。\([0, 1]\) の範囲は初期粗さ値の \([0\%, 100\%]\) に相当します。

ヒント

適用される数式は、 Random Color と同じです。

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

Random Roughness (ランダムな粗さ)

Random(ランダム)

乱数ソース。ここにノードが接続されていない場合、ノードは Hair Info ‣ Random から取得した値で自動的にインスタンス化されます。

Chiang Model

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

Roughness

髪の毛の軸方向において、輝きをどの程度滑らかにするかを指定します。値が小さすぎると、髪が滑らかで、金属に見えるようになり、輝きが Fireflies のように見えます。設定が高すぎると、ランバート風の外観になります。

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

Roughness (粗さ)

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.

ヒント

数学的には、このパラメーターはロジスティック分布のスケール係数 \(s\) にマッピングされます。( [CBTB16] のセクション 4.1)。

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

Radial Roughness (天使の輪の粗さ)

Coat (コート)

最初の光のバウンス(ディフューズ)についてのみ、粗さを所定の係数まで下げることにより、光沢のある毛皮のコートをシミュレートします。元の粗さの \([0\%, 100\%]\) の範囲の換算に相当します。

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

Coat (コート)

Huang Model

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

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.

Roughness

Microfacet roughness for reflection and transmission.

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.

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

Properties(プロパティ)

Color Parametrization (色のパラメータ化)

シェーダーは、髪束に色を付ける3つの異なる方法、つまりパラメーター化を提供します。

Direct Coloring (ダイレクトカラーリング ):

目的のRGBカラーを選択すると、シェーダーが必要な absorption coefficient (吸収係数:下記) を概算します。

Melanin Concentration (メラニン濃度):

このモードは、髪と毛皮における、ユーメラニン(茶色がかった黒髪に多く見られる)、フェオメラニン(赤髪)に見られる色素量と比率として色を定義します 。量は Melanin 入力で指定され、それらの間の比率は Melanin Redness で指定されます。濃度を上げると髪が暗くなります(以下は Melanin Redness\(1\) の場合です)

  • 白 (Melanin \(0\))

  • ブロンド (Melanin \(0.25\))

  • 赤 (Melanin \(0.5\))

  • 茶 (Melanin \(0.75\))

  • 黒 (Melanin \(1\))

さらに、 Tint 入力により、髪を希望の色に染めることができます。

Absorption Coefficient (吸収係数):

減衰係数 \(\sigma_{a}\) を指定します。 Beer-Lambert law によって適用されます。このモードは、主に文献からの係数を変換せずに使用したいテクニカルユーザーを対象としています。

出力

BSDF

標準シェーダー出力。

参考文献

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