Subsurface Scattering
Maya の Subsurface Scattering
Subsurface Scattering (SSS, 表面下散乱)は人間の皮膚や、蝋燭・大理石・ミルクなどの液体のような、
表面が半透明な物体の質感を表現するための技法です。
Maya (6.5)では mentalray で以下のようなシェーディングノードが用意されています。
- misss_fast_simple_maya
- misss_fast_skin_maya
- Lightmap を使って計算をする。
メモリ使用量も少なく、計算は軽い。
- misss_fast_lmap_maya
- Subsurface Scattering 用の Lightmap。
- misss_physical
- misss_physical_phen
- photon を使った物理シュミレーションによって計算をする。
メモリ使用量も多く、計算時間がかかる。
Subsurface Scattering の例
ここでは、最もシンプルな misss_fast_simple_maya ノードを使用した
Subsurface Scattering
を試してみましょう。
- オブジェクトを作成します。
Subsurface Scattering の効果を見るために、
カメラから見てオブジェクトの前後に pointLight を配置しておきます。
- misss_fast_simple_maya ノードを作成します。
- オブジェクトに misss_fast_simple_maya をアサインします。
- mentalrayTexture ノードを作成します。
misss_fast_simple_maya ノードのアトリビュートエディタを開き、
Lightmap セクションにある Lightmap の
ボタンを押します。
作られた mentalrayTexture ノードの名前は、
後で入力するので覚えておきます。
- 作られた mentalrayTexture ノードのアトリビュートを変更します。
- Writable にチェックを入れます。
- File Size Width をレンダリング解像度の 2 倍にします。
- File Size Height をレンダリング解像度と同じにします。
- File Size Depth を 32bits に変更します。
以下の図は 640 X 480 でレンダリングする場合です。
- misss_fast_simple_maya ノードに対応しているシェーディンググループノードの
アトリビュートエディタを開きます。
misss_fast_simple_maya ノードのアトリビュートエディタで
ボタンを押すことによってシェーディンググループノードに移ることができます。
misss_fast_simple_maya1 という名前なら
misss_fast_simple_maya1SG がシェーディンググループノードの名前になります。
- misss_fast_lmap_maya ノードを作成します。
シェーディンググループノードのアトリビュートエディタで、
にある
ボタンを押します。
Create Render Node ウインドウの Light Maps セクションにある
misss_fast_lmap_maya ボタンを押して
misss_fast_lmap_maya ノードを作成します。
- misss_fast_lmap_maya ノードの Lightmap Write セクションにある Lightmap に
4. で作った mentalrayTexture ノードの名前を入力します。
ここまでで、以下のようなシェーディングネットワークが作成されます。
- misss_fast_simple_maya ノードのアトリビュートを適当に変更します。
Subsurface Scattering Layer セクション
- Front SSS Color
- カメラから見てオブジェクトの前面で反射する光の色
- Front SSS Weight
- Front SSS Color が影響する度合
- Front SSS Radius
- Front SSS が反射する距離
- Back SSS Color
- カメラから見てオブジェクトの後面から透過する光の色
- Back SSS Weight
- Back SSS Color が影響する度合
- Back SSS Radius
- Back SSS が反射する距離
- Back SSS Depth
- 通常 Back SSS Radius と同じ値
Lightmap セクション
- Samples
- サンプリング数
256, 512, 1024, 2048 などの値
misss_fast_lmap_maya ノードの Lightmap Write セクション
- Scatter Bias
- 前面・後面どちらからの光を強調するかを決める
- 0.0 以上
- 後ろからの光が強調される(forward scattering)
- 0.0 以下
- 前からの光が強調される(backward scattering)
- Render Globals でレンダラーを mentalray にして、レンダリングします。
- もし、Final Gather をかけてレンダリングしたい場合は、
以下の設定を行ないます。
- misss_fast_lmap_maya ノードの
にチェックを入れます。
- Render Globals の
にチェックを入れます。
その他の例
球の中にコーンを入れて、それら 2 つのオブジェクトに上記と同じ misss_fast_simple_maya をアサインし、
後ろからスポットライトをあててレンダリングしてみました。
球の中にコーンがうかび上がっているのがわかります。
Tips (Image Name)
もし、大きなオブジェクトに misss_fast_simple_maya などをアサインする場合は、
mentalrayTexture ノードのアトリビュート Image Name に
ライトマップを保存する適当なファイル名を入力し、
Writable のチェックをはずします。
すると、2 度目以降のレンダリングでライトマップの計算が省略できるので、
計算を速くすることができます。
参考