PxrSkin

PxrSkin

PxrSkinシェーダは、パストレーシングの効率化とノイズ低減をするための効果的な複数のインポータンスサンプリング技術を組み合わせた 物理ベースのサブサーフェススキャッタリングで、最新機能を活用しています。

サブサーフェススキャッタリングは、モンテカルロシミュレーションにより決められたグランドトゥルースソリューションの近似値を使用します。これには、シングルおよびマルチスキャッタリングの両方が含まれます。より一般的なダイポールディフューズBSSRDFモデルでは、過度に滑らかな"ワックスのような"ルックに悩まされることがよくありますが、 このBSSRDFモデルは高周波ディテールをより鮮明に表現するため、ダイポールモデルよりも優れています。デフォルトは滑らかな白人のスキンカラーですが、ほとんどの場合、テクスチャマップで指定します。

サブサーフェススキャッタリングは、near(近接),mid(中間),far(遠隔)の3つの成分に分けられます。 普通、各成分に異なるカラーを割り当てます。 例えば、スキンでは、近接カラーには青白い黄色がかったピンク、中間カラーにはピンク、遠隔カラーには濃いレッドをそれぞれ選択します。

サブサーフェススキャッタリングの他、PxrSkinシェーダには、スキンの油分および汗からのサーフェス反射を意味するスペキュラー/光沢の反射もあります。 右の画像は、PxrSkinシェーダでレンダリングした頭部の例です(このデータはLee Perry-Smith氏から無料で提供いただきました)。

images/headSSS.jpg

PxrSkinはスキン以外にも使用します。 類似の基本特性を持ったマテリアル、例えばワックスや大理石、オニキス、翡翠(ひすい)などのベースにも適しています。 以下のビデオは、再レンダリングセッションの様子で、PxrSkin Bxdfにより宇宙人にグリーンのプラスチックのルックをインタラクティブに再作成しています。

  • 注:

    PxrSubsurfaceと呼ばれるより簡単なサブサーフェススキャッタリングシェーダもあります。 これには、サブサーフェススキャッタリングパラメータに関して別のパラメタリゼーションがあり、サーフェスからのスペキュラー/光沢の反射はありません。

パラメータ

nearColor

近距離サブサーフェススキャッタリング用のディフューズカラー。デフォルト値は、青白い白人のスキンになります。近接カラーは、対応するウェイトと長さのパラメータに基づいて、中間および遠隔カラーと結合し、サブサーフェスの結果が計算されます。 尚、color * weightは、通常"albedo(アルベド)"と呼ばれますが、ここでは、柔軟性を追加するために、別のカラーおよびウェイトとして表現しています。

デフォルト: 1.0 0.9 0.75

images/pxrSkin/pxrSkinNearColors.jpg

異なるnearColor: スキンのようなピンク、大理石のようなホワイト。(ここでは、midWeightとfarWeightは0に設定されているため、nearColorのみが表示されています。)

midColor

中距離サブサーフェススキャッタリング用のディフューズカラー。

デフォルト: 0.95 0.7 0.55


farColor

遠距離サブサーフェススキャッタリング用のディフューズカラー。

デフォルト: 0.7 0.1 0.1


nearWeight

nearColorに対する乗数(近距離サブサーフェススキャッタリング用)。 例えば、テクスチャからのnearColorカラーを明るくしたり、暗くしたりするのに便利です。

デフォルト: 0.4


midWeight

midColorに対する乗数(中距離サブサーフェススキャッタリング用)。 例えば、テクスチャからのmidColorカラーを明るくしたり、暗くしたりするのに便利です。

デフォルト: 0.3


farWeight

farColorに対する乗数(遠距離サブサーフェススキャッタリング用)。 例えば、テクスチャからのfarColorカラーを明るくしたり、暗くしたりするのに便利です。

デフォルト: 0.9


nearLength (以前は"Diffuse Mean Free Path")

近接カラーに対応するライトがオブジェクトの内部で散乱する距離を決定します。 サブサーフェススキャッタリングの近距離部分が広がる距離(と滑らかさ)を決定します。

デフォルト: 0.8

images/pxrSkin/pxrSkinNearLengths.jpg

異なるnearLength値により、サブサーフェススキャッタリングが拡散する距離を決定します。 左は短く(1.0)、右は長くなります(3.0)。

midLength (以前は"Diffuse Mean Free Path")

中間カラーに対応するライトがオブジェクトの内部で散乱する距離を決定します。 サブサーフェススキャッタリングの中距離部分が広がる距離(と滑らかさ)を決定します。

デフォルト: 2.5


farLength (以前は"Diffuse Mean Free Path")

遠隔カラーに対応するライトがオブジェクトの内部で散乱する距離を決定します。 サブサーフェススキャッタリングの遠距離部分が広がる距離(と滑らかさ)を決定します。

デフォルト: 5.0


specular

スペキュラー反射の量。 0.5のデフォルト値は、標準状態のスキンに適しています。 水分や汗、油分のあるスキンには値を大きくします。 小さい値は、例えば化粧パウダーをのせたスキンや、世界滅亡後の荒地をとぼとぼ歩いて、ほこりが付いたようなスキンに使用することができます。

デフォルト: 0.5

images/pxrSkin/pxrSkinSpeculars.jpg

異なるスペキュラー値: 左は0.0、右は1.0

roughness

サーフェスの粗度は、スペキュラー反射の幅を決定します。 値を大きくすると、スペキュラー反射の幅が広がります。

デフォルト: 0.5

範囲: 0 to 1


unitLength

長さパラメータに対する乗数です。 長さの単位は、ミリメートルであることが多いです。 シーンが、何か他のスケールでモデリングされた場合、unitLengthもそれに合わせて設定してください。 0.1のデフォルト値は、センチメートルでモデリングされたシーンおよび単位がミリメートルの長さに適しています。

デフォルト: 0.1


indirectAtSss

サブサーフェスイルミネーションサンプルで間接イルミネーションを計算します。 "true"の場合、間接イルミネーションをサブサーフェススキャッタリングのソースにすることができます。 この効果は微妙なことが多く、余計な負荷がかかるため、デフォルトは"オフ"です。

デフォルト: 0


bumpNormal

バンプ法線のオプションの接続ポイント。 PxrBump, PxrBumpMap, または PxrNormalMapを参照してください。

デフォルト: 0. 0. 0.


continuationRays

サブサーフェス連続レイをトレースします。1(オン)の時、サブサーフェススキャッタリングは、サーフェスの屈曲箇所からだけでなく、近くにある他のオブジェクトからも散乱させることができます。しかし、内部ブロッカー(例えば、指の骨など)は無視されます。0(オフ)の時、内部ブロッカーは考慮されますが、サーフェスの屈曲箇所や他のオブジェクトからのサブサーフェススキャッタリングはありません。サブサーフェス連続レイをオンにすると、ノイズが増えたり、レンダリング時間が長くなったりすることがあります。デフォルトは0(オフ)です。


以下の図は、サーフェスの入口と出口のポイント間の距離(つまり、サブサーフェススキャッタリング距離)により、どのようにサブサーフェスカラーが計算されるのかを示しています。 最初に、その距離によりbssrdfプロファイル(図中のグレースケール曲線)を評価します。 これは、サブサーフェススキャッタリングの強度になります。 次に、その強度が近接、中間、遠隔カラーの混合であるカラーにより乗算されます。 つまり、その強度は、図中の黄色、オレンジ、赤の領域により示されたスキャッタリング距離により決まります。

尚、nearColorはnearWeightにより乗算され、mid、farについても同様です。 これにより、入力カラーテクスチャを簡単に明るくしたり、暗くすることができます。

また、サブサーフェスカラーの合計は、必ずnearColor、midColor、farColorの混合であることに注意してください。 例えば、3つのすべてのカラーが、青や緑よりも明るい赤の成分を持つ場合、サブサーフェスカラーの合計は、常に青や緑よりも赤になります。 これは、スキャッタリングの長さやサーフェスジオメトリからの影響は受けません。

images/bssrdfColorCurves.png