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

メラニン濃度下での Principled Hair BSDF。¶
Cycles Only
Principled Hair (プリンシプル ヘアー) BSDF は、髪や毛皮をレンダリングするための物理ベースの使いやすいシェーダです。
ちなみに
リアルな髪の毛は、各毛束間で最小限の差異を持つ必要があります。シェーダーは、 Random Color と Random Roughness の 2つの値を指定することでこれを可能にし、指定されたMelanin / Roughness値を範囲に再マッピングします。Color/Roughness±Randomization%.
入力¶
- Color (カラー)
毛束のRGBカラー。 Direct coloring (ダイレクトカラーリング)でのみ使用されます。
ヒント
選択した色は、次の式で吸収係数に変換されます( [CBTB16] のセクション4.2 )。
σa=ln(Color)(5.969−0.215βN+2.532β2N−10.73β3N+5.574β4N+0.245β5N)2βN はランダム化を適用した後のヘアの放射状粗さです。(指定されている場合)
Direct coloring (ダイレクトカラーリング)を使用してヘアを色付けします。(上の数字はRGB値です。)¶
- Melanin (メラニン)
色素の絶対量。範囲 [0,1] は [0%,100%] に相当。
ヒント
これは、基になる指数関数へのリニアマッピングです。
melanin_qty=−ln(maxMelanin (メラニン)¶
- 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}Melanin Redness (メラニンの赤成分)¶
- Tint (チント)
メラニン色素をつけた後、髪を染めるのに使う色。ランダム化の対象ではありません。色を白に設定することで無効化します。
ヒント
これは上記のカラーマッピングで変換され、メラニン濃度の吸収係数に追加されます。
色合い、Melanin値の0.1および対応するRGB値を使用。¶
- Absorption Coefficient (吸収係数)
吸収係数 \sigma 。
- Roughness (粗さ)
髪の毛の軸方向において、輝きをどの程度滑らかにするかを指定します。値が小さすぎると、髪が滑らかで、金属に見えるようになり、輝きが Fireflies のように見えます。設定が高すぎると、ランバート風の外観になります。
Roughness (粗さ)¶
- Radial Roughness (天使の輪の粗さ)
髪の毛の接線方向において、輝きをどの程度滑らかにするかを指定します。値が低すぎると輝きが集中します。設定が高すぎると、毛束の幅全体に光が広がります。
ヒント
数学的には、このパラメーターはロジスティック分布のスケール係数 s にマッピングされます。( [CBTB16] のセクション 4.1)。

Radial Roughness (天使の輪の粗さ)¶
- Coat (コート)
最初の光のバウンス(ディフューズ)についてのみ、粗さを所定の係数まで下げることにより、光沢のある毛皮のコートをシミュレートします。元の粗さの [0\%, 100\%] の範囲の換算に相当します。
Coat (コート)¶
- IOR
レイが方向を変える量を定義する屈折率( IOR )。1.0では、レイは透明なマテリアルのように直進します。値が大きいほど屈折が大きくなります。デフォルト値は 1.55 。
- Offset (オフセット)
毛幹に対する毛のキューティクルの鱗の角度を大きくすることにより、髪の輝きを傾けます。通常、人間の髪の毛の値は低い値です。
- Random Color (ランダムカラー)
各毛束について、メラニン濃度を RandomFactor において変化させます。[0, 1] の範囲は初期メラニン濃度の [0\%, 100\%] に相当します。
ヒント
メラニン濃度は次のように randomFactor によって乗算されます。randomFactor = 1.0 + 2.0*(Random - 0.5) * RandomColor.
Random Color (ランダムカラー)¶
- Random Roughness (ランダムな粗さ)
各毛束について、両方の粗さを RandomFactor において変化させます。[0, 1] の範囲は初期粗さ値の [0\%, 100\%] に相当します。
ヒント
適用される数式は、 Random Color と同じです。
Random Roughness (ランダムな粗さ)¶
- Random (ランダム)
乱数ソース。ここにノードが接続されていない場合、ノードは
から取得した値で自動的にインスタンス化されます。
プロパティ¶
- 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
標準シェーダー出力。
参考文献¶
このシェーダーは、ディズニー映画 "ズートピア" ® で使用された、Chiang et alによる論文の実装です。[CBTB16]
- 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