PxrMarschnerHair
PxrMarschnerHair
PxrMarschnerHairは、Pixar Studioのヘアーシェーダです。このシェーダの機能は以下のとおり:
- これは、完全にエネルギーを保存する物理的に妥当なBxdfです。
- 2つのディフューズモデル:ZinkeとKajiyaを選択できます。
- 完全に実装されたMarschnerスペキュラーローブ: 複数のスペキュラートランスポートパス(Marschner et al のヘアースキャッタリングモデルに基づいたR, TT, TRTのパス); グリント; 方位角粗度コントロールを使用した楕円形の断面に対する離心率。
- Marschnerの実装は、ヘアーレンダリング精度と最も重要なヘアーレンダリング速度を最適化したAdaptive Importance Sampling(適応重要度サンプリング)を取り入れた、"データ駆動型"のライトスキャッタリングモデルを使用しています。
詳細については、Leonid Pekelis氏, Christophe Hery氏, Ryusuke Villemin氏, Junyi Ling氏によるPixar Technical Memo 15-02 "A Data-Driven Light Scattering Model for Hair"を参照してください。
ディフューズパラメータ
Diffuse Model
2つのディフューズモデル:ZinkeとKajiyaを選択できます。デフォルトでは、双方向スキャッタリング向けのZinkeディフューズモデルに設定されています。Importance サンプリング for Physically-Based Hair Fiber Models を参照してください。
- 0: Zinke
- 1: Kajiya
RIB: float diffuseModelTypeデフォルト: 0
Diffuse Gain
diffuseColorに対する乗数。diffuseGainとdiffuseColor の積は、羊毛状のファーでは大きく(最大1.0)、人間の髪の毛などでは小さくなります。
RIB: float diffuseGainデフォルト: 1.0
Diffuse color
毛先のディフューズカラー。
RIB: color diffuseカラーデフォルト: 0.18,0.18,0.18Maya Furcから基本カラーと毛先のカラーを使用するには、PxrPrimvarノードを作成し、Variable NameをCsに、Variable Typeをcolorに設定します。次に、そのresultRGBをDiffuse Colorに接続します。
Pattern "PxrPrimvar" "Hairカラー" "string varname" ["Cs"] "string type" ["color"] Bxdf "PxrMarschnerHair" "HairMaterial" "reference color diffuseカラー" ["Hairカラー:resultRGB"]RISパターンからのカラー結果をDiffuse Colorに接続することもできます。ヘアーの長さに沿った毛根と毛先のカラーの場合、PxrPrimvarを作成し、Variable Nameをvに設定します。次に、この出力をPxrMixノードのMixに接続して、毛根と毛先のカラーをミックスします。
Pattern "PxrPrimvar" "HairV" "string varname" ["v"] Pattern "PxrMix" "Hairカラー" "color color1" [1 0 0] "color color2" [0 1 0] "reference float mix" ["HairV:resultF"] Bxdf "PxrMarschnerHair" "HairMaterial" "reference color diffuseカラー" ["Hairカラー:resultRGB"]
スペキュラーパラメータ
- Marschnerのスペキュラーモデルは、複数のスペキュラートランスポートパスを使用した3つのスペキュラーローブから構成されています:
- Primary Specular:Rは"reflect"の意味で、ライトはヘアーのサーフェスにヒットして、反射します。これは、色のない強力な一次スペキュラーです。
- Secondar Specular:TRTは"transmit", "reflect", "transmit"の意味で、ライトはヘアーのサーフェスを透過した後、ヘアーのサーフェス内から反射し、ヘアーのサーフェスの前面へ透過します。これは、色の付いた二次スペキュラーです。
- Transmit Specular:TTは"transmit", "transmit"の意味で、ライトはヘアーのサーフェスを透過した後、ヘアーのサーフェスの背面から透過します。これは、バックライティングに反応する色の付いた透過です。
詳細は、Marschner et alを参照してください。
Specular カラー
Transmit Specular(TTローブ), Secondary Specular(TRTローブ), GLINTSローブに色を付けるスペキュラーカラー。このスペキュラーカラーは、Primary Specular Colorにより別途制御されるPrimary Specular(Rローブ)には色を付けません。
尚、TRTローブはファイバボリュームを2回通過するため、スペキュラーカラーの2乗により色が付けられます。
RIB: color specularカラーデフォルト: 1.0,1.0,1.0
Primary Specular Gain
MarschnerスペキュラーのRローブに対するゲイン。これは、スペキュラーが極めて鮮明で、光沢があり、通常、色の付いていないクリアコートに似ています。このスペキュラーは、ボリューム減衰では色付けされない直接反射です。
RIB: float specularGainRデフォルト: 0.33
Primary Specular color
Primary Specular(Rローブ)に色を付けるスペキュラーカラー。
RIB: color specularSheenデフォルト: 1.0,1.0,1.0
Secondary Specular Gain
MarschnerスペキュラーのTRTローブに対するゲイン。これは、より粗い、色の付いたスペキュラーです。これは、ファイバーボリュームを2回通過します。
RIB: float specularGainTRTデフォルト: 0.33
Transmit Specular Gain
MarschnerスペキュラーのTTローブに対するゲイン。これは、少しボリューム減衰のある透過タイプ(屈折)のスペキュラーです。これは、ファイバーボリュームを1回通過します。
RIB: float specularGainTTデフォルト: 0.33
Glint Gain
グリントに対するゲイン。
RIB: float specularGainGLINTSデフォルト: 0.0
Cone Angle
円錐角(シータ)で単位は度です。角度が大きくなると、ハイライトがよりソフトになり、より広がります。
RIB: float specularConeAngleデフォルト: 8.0
Specular Offset
円錐オフセットで単位は度です。
RIB: float specularOffsetデフォルト: -3.0
Refraction Index
屈折率。
RIB: float specularIorデフォルト: 1.55
Fresnel Mix
取り込むフレネル減衰量。
RIB: float specularMixFresnelデフォルト: 1.0
Glint Width
TRT配分を滑らかにします。10から25までの値に設定してください。
RIB: float specularGlintWidthデフォルト: 10.0
Eccentricity
楕円形の断面のアスペクト比。1から0.85までの間の値です。尚、離心率は、Nnにより決まります。ヘアージオメトリからのNnは、正しい向きである必要があります。
RIB: float specularEccentricityデフォルト: 1.0
Other Parameters
Presence
ヘアーマスク。これは、プレゼンス(ヘアーが見えるか見えないか)を設定します。尚、RISのPresenceは、サーフェスにヒットするチャンスを意味します。これは、0または1に設定してください。デフォルトでは1に設定されています。これは、サーフェスに100%ヒットするチャンスがあるということで、サーフェスはレンダラーに対して存在しているという意味です。0の設定は、サーフェスはレンダラーに対して存在していないという意味です。0から1までの間の値に設定すると、好ましくないノイズが発生します。
RIB: float presenceデフォルト: 1.0
Opacity color
シャドウの不透明度カラー。
RIB: color opacitycolorデフォルト: 1.0,1.0,1.0
Input AOV
PxrMatteIDのようなAOVパターンを接続して、AOV出力をトリガします。
RIB: int inputAOVデフォルト: 0
PxrHairから
PxrHairをPxrMarschnerHairのパラメータにマッピングします:
PxrHair | PxrMarschnerHair |
---|---|
diffuse diffuse model = Goldman diffuseRootcolor, diffuseTipcolor specular highlightWidth highlightShift transmit transmitRootcolor, transmitTipcolor |
diffuse diffuse model = Kajiya or Zinke diffusecolor specular specularConeAngle specularOffset transmit specular color |
RMSHairから
RMSHairをPxrMarschnerHairのパラメータにマッピングします:
RMSHair (RfM RSL shader) | PxrMarschnerHair |
---|---|
diffuse diffuse model = Goldman DiffuseRootcolor, DiffuseTipcolor specular Highlight Width (Beta) Highlight Offset (Alpha) transmit Specular color Transmit color |
diffuse diffuse model = Kajiya or Zinke diffuseColor specular specularConeAngle specularOffset transmit Primary Specular Color (specularSheen) Specular color (specularcolor) |
Maya Fur/Hairから
Maya Fur/Hairは、Marschnerのスペキュラーモデルとは異なるKajiya-Kayスペキュラーモデルを使用します。Marschnerのスペキュラーモデルは、実際のヘアーのスペキュラー反応により近くなります。
Kajiya-Kayスペキュラーシェーダパラメータからの厳密なマッピングはありません。
まず、PxrMarschnerHairで、スペキュラー円錐角を調整します。これは、5度から10度までの値に設定してください。円錐角が広がると、スペキュラー強度およびスペキュラーの鮮明さからの反応とは逆に、ヘアーは、よりソフトに、より広がります。この場合は、値が大きくなると、ハイライトがより鮮明に、より小さくなります。