Principled Hair BSDF(プリンシプルヘアーBSDF)¶
Hair (ヘアー) BSDF
The Principled Hair BSDF is a physically-based, easy-to-use shader for rendering hair and fur.
Tip
リアルな髪の毛は、各毛束間で最小限の差異を持つ必要があります。シェーダーは、 Random Color と Random 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}\) はランダム化を適用した後のヘアの放射状粗さです。(指定されている場合)
- Melanin (メラニン)
色素の絶対量。範囲 \([0, 1]\) は \([0\%, 100\%]\) に相当。
ヒント
これは、基になる指数関数へのリニアマッピングです。
\[melanin\_qty = -\ln(\max(1.0 - Melanin, 0.0001))\]- Melanin Redness (メラニンの赤成分)
フェオメラニンとユーメラニンの比率。範囲 \([0, 1]\) は \([0\%, 100\%]\) に相当。
ヒント
The ratio formula is: \(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}\]- Tint (チント)
メラニン色素をつけた後、髪を染めるのに使う色。ランダム化の対象ではありません。色を白に設定することで無効化します。
ヒント
これは上記のカラーマッピングで変換され、メラニン濃度の吸収係数に追加されます。
- Absorption Coefficient (吸収係数)
吸収係数 \(\sigma\) 。
- IOR
レイが方向を変える量を定義する屈折率( IOR )。1.0では、レイは透明なマテリアルのように直進します。値が大きいほど屈折が大きくなります。デフォルト値は \(1.55\) 。
- Offset(オフセット)
毛幹に対する毛のキューティクルの鱗の角度を大きくすることにより、髪の輝きを傾けます。通常、人間の髪の毛の値は低い値です。
- Random Color (ランダムカラー)
各毛束について、メラニン濃度を \(RandomFactor\) において変化させます。\([0, 1]\) の範囲は初期メラニン濃度の \([0\%, 100\%]\) に相当します。
ヒント
The melanin concentration is multiplied by \(randomFactor\), where \(randomFactor = 1.0 + 2.0×(Random - 0.5) × RandomColor\).
- Random Roughness (ランダムな粗さ)
各毛束について、両方の粗さを \(RandomFactor\) において変化させます。\([0, 1]\) の範囲は初期粗さ値の \([0\%, 100\%]\) に相当します。
ヒント
適用される数式は、 Random Color と同じです。
- Random(ランダム)
乱数ソース。ここにノードが接続されていない場合、ノードは
から取得した値で自動的にインスタンス化されます。
Chiang Model¶
The Chiang model is based on a Gaussian distribution with separate roughness along and orthogonal to the hair.
- Roughness
髪の毛の軸方向において、輝きをどの程度滑らかにするかを指定します。値が小さすぎると、髪が滑らかで、金属に見えるようになり、輝きが Fireflies のように見えます。設定が高すぎると、ランバート風の外観になります。
- 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)。
- Coat (コート)
最初の光のバウンス(ディフューズ)についてのみ、粗さを所定の係数まで下げることにより、光沢のある毛皮のコートをシミュレートします。元の粗さの \([0\%, 100\%]\) の範囲の換算に相当します。
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].
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