On this page | |
Since | 19.0 |
概要 ¶
Karma Hairは、ヘアーとファーをレンダリングするための物理ベースなマテリアルで、映画“ズートピア”で開発されたChiang et al氏によるモデルに基づいています。 このモデルは、パストレーシングレンダラーでさえも非常に効率的です。 このマテリアルは、自然界のヘアーの繊維の物理的な反応に基づいたアーティスティックなコントロールが備わっています。
このマテリアルは、ヘアーの繊維を粗いガラスのチューブと見立ててシェーディングします。 そのため、自然界と同じように光がヘアー内で散乱します。 以下の画像では、ヘアーマテリアルが割り当てられたカーブと、その隣に透過を有効にしたPrincipledマテリアルが割り当てられたヘアーの形をしたポリゴンチューブがあります:
右側の画像では、カーブのヘアーマテリアルが、実際に厚みのある透過ポリゴンサーフェスのルックに非常に近いことが分かります。
Note
シェーダではなく、Karma(HoudiniのUSDレンダラー)がレンダリング時にヘアーカーブに“厚みのある”チューブを作成します。 技術的には、上記の画像のポリゴンチューブで使用されているシェーダと同じように、通常のガラスシェーダを使ってヘアーをシェーディングすることができます。 しかし、このマテリアルは、汎用シェーダよりもヘアーのシェーディングが はるかに 高速です。
Melanin(メラニン) ¶
Melanin(メラニン)
は、ヘアーカラーに影響を与える天然色素です。
このマテリアルは、メラニンに基づいたコントロールが備わっていて、自然なルックのヘアーカラーを表現することができます(他のヘアーカラーを選択するように オーバーライド することもできます)。
メラニンには2つの種類があります: Eumelanin(黒色メラニン) は、金髪/茶髪/黒髪の色を生成し、 Pheomelanin(黄色メラニン) は赤髪の色を生成します。
Melanin Redness パラメータは、金/茶/黒(0.0
)と赤(1.0
)の色素沈着をブレンドします。
以下のルックは、それぞれ異なる Melanin 、 Melanin Redness 、 Melanin Randomize 、 Thickness Scale の値を使用しています。
(この画像では、左から右に向かって Melanin と Thickness Scale の値を下げた結果を示しています。)
Tips ¶
-
MaterialXシェーダを使用して、Karma Hairのパラメータを駆動させることができます。例えば、Mtlx Geompropvalueは、
displayColor
などのPrimvarを読み込むことができます。 -
ストランド(髪の房)の幅が不十分なルックの場合、Karma Render Propertiesで Ray Bias を下げる必要があります。
Ray Bias を大きくしすぎると、透過がカーブ沿いの特定の位置で停止して、そのカーブの薄い部分が黒いままになります。
-
ヘアーの端が薄く先細っているようにしたいのに、あまりにも太すぎたルックになっている場合、Karma Render Propertiesの Pixel Samples の数を上げてみてください。
-
寄りのヘアーまたはファーに対応できるように、Basis Curves LOPを使用して以下のプロパティを設定することでヘアーカーブジオメトリを編集することができます:
プロパティ
値
説明
Curve Type
Cubic
カーブセグメント間を滑らかに補間します。
Curve Basis
BSpline
BSpline補間メソッドを使用します。
Wrap
Pinned
3次カーブを有効にするために必要に応じて見せかけのポイントを生成します。
パラメータ ¶
Color ¶
Base
黒からベース/メラニンのカラーまでのヘアーカラーに対する“明度”スケール。
Base Color
ヘアーのベースカラー。
(以下の)メラニンコントロールを使用して自然なヘアーカラーを取得したいのであれば、これを1, 1, 1
(白、デフォルト)に設定します。
メラニンの影響を受けずにこのカラーを使用したいのであれば、以下の Melanin パラメータを0
に設定します。
このカラーを設定 且つ メラニンコントロールを使用した場合、このカラーは染毛剤のように作用します。
Melanin
ヘアーの天然色素の量(このパラメータを上げると、ヘアーが 暗く なることに注意してください)。 Base Color がデフォルト(白)だった場合、これは、白色、白金色、金色、茶色、黒色をブレンドします。
Melanin Redness
天然色素の赤の量。
この赤の寄与度は、天然色素の総量( Melanin パラメータ)でスケールされます。
Melaninを比較的低く抑えてMelanin Rednessを多くすると、“ハニーブロンド”のルックが得られます。
本当の赤髪にしたいのであれば、これを1
に設定し、Melaninの量を0.5
以上くらいに設定してください。
Melanin Randomize
ストランド(髪の房)毎にメラニンレベルをランダムにする度合い。 これによって、ヘアーのルックの均一感をなくし、より自然な感じにすることができます。
( Advanced タブの Random Seed を変更すると良いでしょう。)
Thickness Scale
実際のヘアーがストランド(髪の房)の太さによって色が変わるようにヘアーカラーを変えます。
この値を下げると(薄くすると)、ヘアーがあまり光を散乱させなくなるので、ヘアーカラーが白色に近づきます。
デフォルトは1
です。
これは、レンダリングされるヘアーチューブの実際の太さを 変更するわけではありません (実際の太さを変更したいのであれば、ヘアーカーブジオメトリ上のwidth
アトリビュートを変更してください)。
Tint
最終ライティング結果に対する乗数。
Specular ¶
Shift
キューティクル(角質)の角度: 第一反射鏡面ハイライトがストランド(髪の房)に沿って表示される箇所。
このパラメータの-1
から1
までの値は、ヘアーの幅に対する-90
度から90
度までを意味します。
デフォルトは0.03
(2.7度に相当)です。
IOR
ヘアーの
屈折率
。
これは、ヘアーが光を吸収する量、対、反射する量を制御します。
値が小さいほど、光が前方(光源から遠のく方)に散乱され、値が大きいほど光が後方(光源の方へ)に反射されます。
1
のIORは、完全透明を意味します。
デフォルトは1.55
です。
Roughness
値が小さいほど、光沢のあるヘアーになり、値が大きいほど、光沢のないヘアーになります。 ( Roughness Anisotropic を有効にすると、これは、ヘアーの長さに沿った長手方向のRoughnessを制御します。)
Roughness Randomize
ストランド(髪の房)毎のRoughnessをランダム化する度合い。 これによって、ヘアーのルックの均一感をなくし、より自然な感じにすることができます。
( Advanced タブの Random Seed を変更すると良いでしょう。)
Roughness Anisotropic
これを無効(デフォルト)にすると、上記の Roughness パラメータは、(ヘアーの長さに沿った)長手方向と(ヘアーの幅に沿った)短手方向のRoughnessの両方を制御します。 これを有効にすることで、短手方向のRoughnessを個別に制御することができます。
Roughness Azimuthal
Roughness Anisotropic が有効な時、これは、(ヘアーの幅に沿った)短手方向のRoughnessを制御します。 値が小さいほど、光がもっと容易くヘアーを通過できます。 値が大きいほど、光がヘアー内をもっと跳ね返るようになります。
Coat
ヘアーの外側の層の光沢。 値が大きいほど、ヘアーが光を反射させた時の閃光のコントラストが強くなります。 これによって、ヘアーを濡れた感じにしたり、油っぽくすることができます。
Diffuse ¶
Diffuse
拡散反射の度合い。 この値を少し上げると、見た目の光沢が弱くなって、ヘアーが汚れたり傷んだりしたルックにすることができます。 ゼロ以外の値は、ヘアーカラーを以下の Diffuse Color に向かわせます。 これは、物理的に現実的ではありません(実際のヘアーには拡散成分がありません)が、アーティスティックな制御で役に立ちます。
Diffuse Color
拡散反射カラー。 上記の Diffuse スケールのゼロ以外の値は、このカラーをヘアーカラーに加算します。 これは、物理的に現実的ではありません(実際のヘアーには拡散成分がありません)が、アーティスティックな制御で役に立ちます。
Advanced ¶
Custom Hair ID
通常では、このマテリアルはカーブまたはPrimのIDに基づいてストランド毎に固有なHair IDを計算します。 これを有効にすると、このノードの Hair ID 入力にノードを接続して、ストランド毎にHair IDを計算することができます。 同じHair IDを持ったストランドは、このマテリアルがランダム( Melanin Randomize 、 Roughness Randomize )を使用した場合に同じ“ランダム”結果を取得します。
Hair ID
これは、このノードのHair ID入力と同等のパラメータです。 このパラメータを使うよりも、この入力を使用してストランド毎にHair IDを計算した方が良いです。 この入力にノードを接続せずにこのパラメータを使用した場合、すべてのストランドがメラニンとラフネスに対して 同じ“ランダム”値 が取得されます。 それだと、変なルックになってしまいます。
Random Seed
値を変えると、このマテリアルがランダム( Melanin Randomize 、 Roughness Randomize )を使用した場合に異なる結果が取得されます。