Subsurface

 

サブサーフェス スキャッタリング(SSS)は、オブジェクトに入り、そのサーフェスの下で散乱する光の効果をシミュレートします。 すべての光がサーフェスで反射するわけではありません。 一部は照らされているオブジェクトのサーフェスを貫通します。 そこで、マテリアルによって吸収され、内部で散乱されます。 この散乱した光の一部は、サーフェスの外に戻り、カメラで確認できるようになります。 これは「サブサーフェス スキャッタリング」または「SSS」として知られます。 SSS は、大理石、スキン、リーフ、ワックス、ミルクなどのマテリアルのリアルなレンダリングに必要です。 このシェーダの SSS コンポーネントは、ブルートフォース レイトレース方式を使用して計算されます。

ジオメトリ法線が正しい方向を向いていることを確認する必要があります。そうしないと、SSS は正しくレンダリングされません。

 

SSS は、例えばプラスチックなどのリアルなマテリアルを複製するときに重要です。

 

Weight

拡散反射光とサブサーフェス スキャッタリング間の「ブレンド」です。 1.0 に設定すると SSS のみになり、0 に設定すると Lambert のみになります。 ほとんどの場合は 1.0 (完全 SSS)にします。

Color

サブサーフェス スキャッタリングの効果を決定するために使用されるカラーです。 たとえば、スキン マテリアルを複製する場合は、肉質のカラーを設定します。

 

スキン カラー
一般的には、カラー テクスチャ マップを Subsurface Color に接続し、Subsurface Color の半径をスキンに対して適切な値に設定します(赤が主に血液から生じていると仮定した場合、赤チャネルの値は大抵高くなります)。半径の調整には、必要があればテクスチャを使うことができます。静脈はカラー テクスチャ マップの一部になります。カラーに影響するだけでなく、サブサーフェス スキャッタリングの動作の仕方にも影響します。
Standard Surface では、BaseSSS 間でのミックスが可能です。 スキンの拡散反射光を使用する場合、選択します。 フェース ペイントなどにマスクを使用して異なるテクスチャをミックスしたり、Base ColorSubsurface Color の両方に同じテクスチャを接続してブレンド係数を変更することによって、鮮明さを変更するのに使用できます。


スキン シェーダの設定の例

Radius

ライトがサーフェスの下に散乱できる、おおよその最大距離です。「平均自由工程」(MFP)とも呼ばれます。 このパラメータは、散乱したライトが外に戻る前にサーフェスの下に伝播する平均距離に影響を与えます。 距離に対するこのような効果は、カラー コンポーネントごとに個別に指定できます。 値を大きくするとサブサーフェス スキャッタリングの外観がスムーズになります。一方、値を小さくすると不透明な見た目になります。

カラーが明るくなるほど、光の散乱が多くなります。 値が 0 の場合、散乱効果は生成されません。 

半径の値を大きくすると、マテリアルの外観が、皮革風から大理石風のように、大幅に変更される可能性があります。 SSS はスケールに大きく依存しています。 半径の乗数はモデルのサイズに応じて調整する必要があります。 既定の SSS 設定を使用してレンダリングすると、外観が適切に見えない場合があります。 また、シーン スケールを調整すると、同様の結果になる可能性があります。

すべてのカラーを同程度に分散させるのではなく、RGB のカラーごとに異なる半径値を選択することもできます。 たとえば、スキンのような マテリアルは、緑と青よりも赤い半径を大きくする必要があります。

スキンをレンダリングするときは、1.00.350.2 などの値を使用します。これは、赤が最も深く散乱し、緑と青が控えめになることを示します。 これにより、スキンの 3 層レイヤのワークフロー(深いレイヤ、中間レイヤ、浅いレイヤ)が置き換えられ、深いレイヤを赤にしてその深さではより大きな半径で散乱させることができます。scatter_radius.R をより大きな値に設定することがこれに対応します。

下のイメージは、赤の半径のカラーを大きくしたときの効果を示しています。 円のエッジの周りの色が付いた「フリンジング」効果に注目してください。 コンポジット用ソフトウェア内のソース イメージの赤のチャネルにガウス ブラーを適用すると同じ効果が発生します。

 

Scale

反射が戻る前にライトがサーフェスの下で移動する可能性のある距離をコントロールします。 スキャッタリングの半径をスケールして、SSS Radius Color を乗算します。

シーンがメートル単位の場合は、SSS Scale を 0.01 に設定し、SSS Radius をセンチメートル単位で指定することができます。 たとえば、スキンの場合、SSS Radius は 0.37cm0.14cm0.07cm のように指定できます。

Type

diffusion または randomwalk を選択します(既定では、既存のシーンの外観を壊さないように diffusion が使用されます)。 拡散理論に基づいた経験的 BSSRDF メソッドとは異なり、randomwalk メソッドは実際のランダム ウォークによってサーフェス下のトレースを行うため、ジオメトリは局所的にフラットであるという想定は行いません。これは、ブルートフォース ボリューム レンダリングのように、異方性スキャッタリングを考慮に入れることができ、凹面や小さいディテールでの結果がはるかに良くなることを意味します。 スキャッタリングの半径が大きい(平均自由工程が大きい)場合に、拡散に比べて処理が速くなる可能性があります。 一方 randomwalk は、高密度のメディア(平均自由工程が小さい場合)で低速になり、2 つのサーフェスをブレンドする際に sss_setname がサポートされません。また、類似の外観を得るためにマテリアルの再調整が必要になる可能性があります。さらに、閉じていないメッシュ(mouth bag)、および影を落とす可能性のある内部ジオメトリに対してはうまく動作しないことがあります。


Anisotropy

-1 (完全な後方散乱)と 1 (完全な前方散乱)の範囲の Henyey-Greenstein 異方性係数です。 既定は等方性メディア用の 0 です。これは、ライトを全方向に均等に散乱させ、均等な効果を得ることができます。 正の値は前方(ライトの進行方向)に散乱効果をバイアスします。一方、負の値は後方(光源の方向)に散乱効果をバイアスします。

このパラメータは、randomwalk SSS メソッドでのみ動作します。

 

オブジェクト間の SSS

同じ SSS「セット」に属する複数のオブジェクトにタグを付けて、照明がオブジェクトの境界にまたがってぼやけるようにすることができます。 一般的な使用例は、歯と歯茎ジオメトリの間のぼかしです。 これを有効にするには、定数 STRING userdata sss_setname をセット内のオブジェクト上の同じ値に追加します。

これは現在、randomwalk SSS メソッドでは機能しません。

  • No labels