トップ > レンダリング > Blender Renderでレンダリングしてみよう >
表面下散乱で肌を表現する

  

表面下散乱で肌を表現してみよう

この記事では、肌の表現に挑戦してみましょう。 人間や動物の皮膚を表現するには、表面下散乱(Subsurface Scattering)の再現が欠かせません。

表面下散乱とは、光が表面を透過し、内部で散乱してから外に出て行く現象のことです。 皮膚はもちろん、果物の皮やロウ、大理石、牛乳などが表面下散乱する素材の代表です。

  
表面下散乱(Subsurface Scattering)は、略してSSSとも呼ばれます。

表面下散乱の利用

今回も、作成済みの実験用シーンを元に解説します。 画面上部のプルダウンメニューの"File" -> "Open"を実行して実験用シーンのファイルを開きます。

  
実験用シーンは、レンダリング > Blender Renderでレンダリングしてみよう > 実験用シーンの作成で作成しました。 まだ作成していない場合は、そちらの記事を参考にして作成してください。
  
開いた実験用シーンを上書き保存しないよう注意しましょう。 Windows上(またはLinux上)でファイルをコピーしたものを開くのがいいかもしれません。

では、作業を進めましょう。 まず、スザンヌのマテリアル設定を変更し、光が表面下散乱するようにします。

1. スザンヌを選択
1. スザンヌを選択

上図のようにスザンヌを選択します。

続いて、マテリアルの表面下散乱関連の設定項目を調整します。

2. マテリアルパネル切替ボタン
2. マテリアルパネル切替ボタン

上図のようにPropertiesウィンドウのマテリアルパネル切替ボタン(マテリアルパネル切替ボタン)を押します。

続いて、表面下散乱を有効にします。

3. Subsurface Scatteringチェックボックスをオンにする
3. Subsurface Scatteringチェックボックスをオンにする

上図のようにSubsurface Scatteringパネルの同名のチェックボックスをオンにし、SSS Presetから "Skin2" を選択します。

なお、SSS Presetは、Blenderにあらかじめ登録されている素材ごとのプリセットです。 今回選択した "Skin2" は肌を表現するためのものです。

  
"Skin1" だと色が濃すぎるため "Skin2" を選びました。
4. プリセットを選択したことで設定された項目
4. プリセットを選択したことで設定された項目

上図のようにSSS Presetを変更したことで、Scattering ColorのカラーフィールドおよびRGB Radiusが変化します。

  
本来なら、屈折率(IOR : Index Of Refraction)も変化するはずなのですが、Blenderに最初から用意されているプリセットは屈折率を持っていないため屈折率は一切変化しません。 ただし、自分で登録したプリセットであれば、屈折率も変化します。

Scattering Colorは、表面下散乱してから外に出て行く光の色を設定する項目です。 太陽にかざした手であれば、やや赤みを帯びた肌色といった具合でしょうか。

RGB Radiusには、光のRGB成分それぞれの散乱の度合いを設定します。

  
Scattering ColorとDiffuseパネルにある拡散反射色の関係ですが、レンダリング結果にはどちらも反映されます。 Diffuseパネルにある拡散反射色で陰影計算された結果と表面下散乱で計算された結果の色がブレンドされます。
  
ブレンドの度合いは、Subsurface ScatteringパネルのBlendのColorで調整できます。 0.0でDiffuseパネルにある拡散反射色の影響が強くなり、1.0ではScattering Colorの影響が強くなります。

では、この状態でレンダリングしてみましょう。 キーボードのF12キーを押してください。

5. レンダリング結果
5. レンダリング結果

上図のように残念ながら肌には見えません。 磨かれた石のようにも、樹脂のようにも、濁ったガラスのようにも見えます。

とりあえずの問題は、カクカクしていることが原因で有機物に見えないことです。 まずは、スムージングを有効にしてなめらかにしましょう。

  
スムージングとは、陰影計算を行うときの光の反射角度を緩やかに変化させることにより陰影をなめらかにする機能です。

では、スムージングを有効にしましょう。 3D Viewウィンドウ上でキーボードのTを押してツールシェルフを表示します

6. ツールシェルフを開く
6. ツールシェルフを開く

上図のようにツールシェルフが表示されます。

では、スムージングを有効にします。

7. スムージングを有効にする
7. スムージングを有効にする

上図のようにツールシェルフの[Smooth]ボタン([Smooth]ボタン)を押します。

ツールシェルフは以降は使いませんので、キーボードのTを押して折りたたんでおきます。

8. ツールシェルフを閉じる
8. ツールシェルフを閉じる

上図のようにツールシェルフを閉じます。

では、再度レンダリングしましょう。 キーボードのF12キーを押します。

9. レンダリング結果
9. レンダリング結果

上図のようにスムージングでなめらかになりました。 ただし、まだ肌には見えません。 ゴムやロウのようです。

続いて、ランプ(ポイントライト)を追加します。 肌が表現されているかどうかを確認するために後ろから照らすことが目的です。 手を太陽にかざすような場面をイメージしています。

キーボードのSHIFT + Aを押します

10. Addメニュー
10. Addメニュー

上図のように"Add"というタイトルのメニューが表示されますので、"Lamp" -> "Point"を実行します。

11. ランプが追加される
11. ランプが追加される

上図のようにランプが追加されます。

続いて、追加したランプがカメラから見てスザンヌの後方に位置するよう移動します。 まずは、X方向に -2 移動します。

キーボードのGを押し、続けて、X -> -2 -> Enterキーを入力します。

12. ライトをX方向へ -2 移動
12. ライトをX方向へ -2 移動

上図のようにライトをX方向に -2 移動します。

さらに、Y方向に +1 移動します。

キーボードのGを押し、続けて、Y -> 1 -> Enterキーを入力します。

13. ライトをY方向へ +1 移動
13. ライトをY方向へ +1 移動

上図のようにライトをY方向に +1 移動します。

では、この状態で再度レンダリングしましょう。 キーボードのF12キーを押してください。

14. レンダリング結果
14. レンダリング結果

上図のように後ろの光はあまり透過していません。 そのため、まだ肌ではなくロウやゴムに見えます。

ではここで、スザンヌの拡散反射シェーダと鏡面反射シェーダを変更しましょう。 現在は、Lambertシェーダと、CookTorrシェーダですが、これを肌に向いているシェーダや設定に変更しましょう。

15. スザンヌを選択
15. スザンヌを選択

上図のようにスザンヌを選択します。

続いて、シェーダおよびシェーダの設定を変更します。

16. マテリアルパネル切替ボタン
16. マテリアルパネル切替ボタン

上図のようにPropertiesウィンドウのマテリアルパネル切替ボタン(マテリアルパネル切替ボタン)を押します。

続いて、拡散反射シェーダを変更します。

17. 拡散反射シェーダの設定
17. 拡散反射シェーダの設定

上図のように拡散反射シェーダに "Oren-Nayar" を選択し、Intensityを 0.8 に、Roughnessを 1.0 に設定します。

  
表面の粗さを表現できるOren-Nayarシェーダにしました。

続いて、鏡面反射シェーダを変更します。

18. 鏡面反射シェーダの設定
18. 鏡面反射シェーダの設定

上図のように鏡面反射シェーダに "Phong" を選択し、Intensityを 0.2 に、Hardnessを 10 に設定します。

  
有機物の表現に向いているPhongシェーダを選択しました。

では、レンダリングしてみましょう。 キーボードのF12キーを押してください。

19. レンダリング結果
19. レンダリング結果

上図のようにまだ肌には見えません。

次に、大きさの指定を行います。 大きさの指定とは、この物体がどのぐらいの大きさなのかをBlenderに伝える作業です

Blenderが表面下散乱を再現するのに、物体の大きさがわからなければ、どの深さまで光が届くのかを決められないためです。 小さな物体なら中心近くにまで光は届くでしょうし、大きな物体なら表面から少し深いところまでしか光は届かないでしょう。

大きさには、Blender上の物体のサイズを、現実のミリメートル単位の大きさで割ったものを指定します。

ここでは、スザンヌは5cm、つまり、50mmであるとしましょう。 そして、スザンヌのBlender上のサイズは 1.0 です。 つまり、1.0 割る 50 で 0.02 を指定すればいいことになります。

  
オブジェクトのサイズは、キーボードのNを押して、プロパティシェルフを開くことで確認することができます。

では、大きさをBlenderに伝えましょう。

20. Subsurface ScatteringパネルのScaleを 0.02 に
20. Subsurface ScatteringパネルのScaleを 0.02 に

上図のようにSubsurface ScatteringパネルのScaleに 0.02 を設定します。

では、レンダリングします。 キーボードのF12キーを押してください。

21. レンダリング結果
21. レンダリング結果

上図のように少しだけ肌に近づきました。 ただし、光を遮り過ぎているように見えます。

Scaleの値を倍の 0.04 に変更してみましょう。 つまり、スザンヌは 2.5cm の物体であると伝えたことになります。

22. Subsurface ScatteringパネルのScaleを 0.04 に
22. Subsurface ScatteringパネルのScaleを 0.04 に

上図のようにSubsurface ScatteringパネルのScaleに 0.04 に変更します。

では、これでレンダリングしてみましょう。 キーボードのF12キーを押します。

23. レンダリング結果
23. レンダリング結果

上図のようにさらに肌に近づきました。 ただし、後ろにあるランプからの光が届いてなさ過ぎです。 耳のような薄い部分は、もう少し光を透過させてもよさそうです。

ということで、後方からの光を、今よりも透過させるよう調整しましょう。

24. Scattering WeightのBackを 4.0 に
24. Scattering WeightのBackを 4.0 に

上図のようにSubsurface ScatteringパネルのScattering WeightのBackに 4.0 を設定します。

では、レンダリングしてみましょう。 キーボードのF12キーを押してください。

25. レンダリング結果
25. レンダリング結果

上図のように肌に見えてきました。

最後に、環境照明を有効にしてみましょう。 スザンヌの顔が暗いので、全体的に明るくするためです。

26. ワールドパネル切替ボタン
26. ワールドパネル切替ボタン

上図のようにPropertiesウィンドウのワールドパネル切替ボタン(ワールドパネル切替ボタン)を押します。

続いて、環境照明を有効にします

27. Environment Lightingチェックボックスをオンにする
27. Environment Lightingチェックボックスをオンにする

上図のようにEnvironment Lightingパネルの同名のチェックボックスをオンにし、Energyを 0.2 に設定します。

では、レンダリングしてみましょう。 キーボードのF12キーを押してください。

28. レンダリング結果
28. レンダリング結果

上図のように明るくなりました。 肌を表現できているのではないでしょうか。

なお、今回の例では、テクスチャを貼っていないので赤ん坊の肌のようにツルツル感が満載ですが、テクスチャを貼ることでさらに肌っぽくなります。

  
  

まとめ

マテリアル設定の表面下散乱を有効にすることで、肌を表現することができます。 Scattering Colorで色を指定し、Scaleで物体の現実の大きさを指定し、Backで背後の明かりの透過の度合いを調整します。

 
メニュー