SSS+Ref3

BLENDER-99-27/Cyclesマテリアルの基本6

前回は、「その他の質感を現すシェーダー」の中で、2種類のシェーダーを学びました。

・Anisotropic BSDF(異方性反射)と、
・Hair BSDF(毛)でしたね。

今回は、下記の2つを学びます。

・Subsurface Scattering(サブサーフェス・スキャタリング)
・Translucent BSDF(トランスルーセント≒光透過)

何やらまた、難しそうです。
でも、もちろん大丈夫です。ちゃんと分かりやすいように解説しますからね!

では、はじまりはじまり。

【Blender-99 絶対に挫折しない3DCG入門 -27 Cyclesマテリアルの基本-6】

 

【今回の学び】

・「その他」の質感を現すシェーダー 2
・Subsurface Scattering(サブサーフェス・スキャタリング≒表面下光散乱ひょうめんかひかりさんらん)
・Translucent BSDF(トランスルーセント≒光透過)

【Subsurface Scattering(サブサーフェス・スキャタリング)】

名前を「表面下光散乱ひょうめんかひかりさんらん」と無理やり訳してみました。
イメージ湧きますか?
湧きませんよねえ。

では、身近なものを写真に撮ってみます。
IMG_3395

IMG_3396

観葉植物コンシンネの葉です。窓際にあるので、外からの光が透けて見えます。向こう側に光がある部分は若干黄緑色っぽくなっていますが、分かりますか?

本日学ぶ2つのシェーダーは、いずれもこの光の透過を扱うものです。え? 透明や屈折シェーダーとどう違うか、ですって?

そうですね、そこに気がついたあなたはさすがです。Blender-99で日夜学習しているだけのことはありますね!

この4つのシェーダーは、いずれも当たった光が逆側に通り抜ける性質を持っています。前回の2つは基本的に透明なので、そのシェーダーが適用されたオブジェクトの向こう側にあるものがはっきり見えるものでした。今回の2つは、〈光は通すけれど、向こうにあるものの形までは分からない〉光の透け方です。

もう少し写真を見ます。

ビールケースのようなプラスチックのケース
ビールケースのようなプラスチックのケース

 

逆光が当たる場所に置いてあります。向こう側から来た光が側面の内側に当たり、明るくなっています。もしこのケースが金属でできていたとしたら、光が透けて見えることはありません。左上の角にも注目してください。プラスチックの中を通り抜けた光が、エッジを明るく光らせています。これは決して右上(外)から当たった光ではなく、プラスチックという物質の内部を通ってきた光です。

青い発泡スチロールの箱
青い発泡スチロールの箱

白く光っているエッジの周辺で、発泡スチロールの内部を通った光が筋模様を青く照らしているのが分かります。下の方の筋模様はもっと暗くて黒っぽいですよね。光が筋の部分を伝わっていることが分かります。
エッジ周辺の角に関しては、厚みの薄い部分で向こう側に当たった光を通していることが分かりますね。

(次はCGですが)Manuel Labの記事を見てくださっている方は、こちらの画像をご記憶かもしれません。右手の小指と薬指の、特に付け根の辺りが光を通している様子が分かります。

ML15_02_1,4

 

 

このように、Subsurface Scattering(SSSと略します)とは、物体の内部に侵入した光がその中で散乱(反射&屈折)し、光の通り過ぎた先の表面を明るく照らす現象のことです。例に上げたものはいずれも物体の内部が不透明なもので詰まっているので、光を通すけれども向こう側は見えません。そこが、透明物と違うところです。

Translucentは、不透明だけれど光を通すというような意味です。素人目には、この2つのシェーダーはあまり違いがありません。

これらの大きな違いは、SSSは〈物体の内部を透過する光の散乱を計算して再現する〉のに対し、Translucentは〈中は詰まっているけど光を通すことにする〉というものです(私見ですが……)。

これがどういうことかというと──

・SSSは物体の厚みに応じて光の透過度が変化する
→SSSは物体内部を透過する光を実際に計算する

SSSはレンダリングの計算に多くの時間を必要としますが、下図のように想像通りの結果を得ることが出来ます。
石鹸のように不透明だけれど光を通す物体の背後から光が当たっている様子です。

SSSは物体の厚みをリアルに感じることができます。 なんだか、美味しそうに見えますね。
SSSは物体の厚みをリアルに感じることができます。
なんだか、美味しそうに見えますね。

 
一方でTranslucentをスザンヌに適用してみると……

Translucentは、このような立体物に適用すると光の透過した感じも分からず立体感も曖昧です。
Translucentは、このような立体物に適用すると光の透過した感じも分からず立体感も曖昧です。

 

・Translucentは物体の厚みを考慮しない
→立体的な表現には向いていないかも?

Translucentって不要なんじゃないか、と、つい思ったりもします。
でも、きれいにSSSの計算をするのは結構時間が掛かるのですよね。

この2つのシェーダーをスザンヌに適用したデータを、全く同じ設定でレンダリングしてみます。

27_01
左上に表示された「Time」を見ると、レンダリングにかかる時間はほぼ同じです。 が……

 

両者を比較すると、SSSは粒々のノイズだらけで画像が粗いですね。

Translucentと同じくらいきれいに見えるように設定を変えると……
27_02

なんとまあSSSのほうが4倍近い時間を必要とすることが分かります。

SSSと同様に背後からの光を通しているはずなのに、Translucentは全然光が透過している感じがしません。かといって、Diffuseの見え方とも異なります。では、Translucentシェーダーは何に使うのでしょうか?

簡単なシーンを作ってみました。芝のような草が何枚か生えているものです。

27_03

草が明るく見える方がTranslucentです。葉が重なった部分で、背後にある葉の影が映っています。つまり、光が透過して見えているということです。SSSの方はというと、厚みのない葉なのに厚みの計算をしようとしているのか、妙に不自然で、逆に立体感がありません。

これは、SSSシェーダーの初期設定が立体用になっていることもありますが、僕の知識の範囲で調整してみてもあまり望ましい結果にはなりませんでした。しかも、きれいにレンダリングするためにかかる時間は何倍にも増加しますし、葉裏から当たる光が弱くて、全体が暗いままです。

27_04
頑張って設定を調整しても、いまひとつ葉っぱの質感には見えませんでした。

 

Translucentシェーダーをもう少し調整し、より葉っぱっぽくしてみます。具体的には反射を入れています。形状も僅かな厚みを付けて、ちょっとだけ凝った感じにし、数も増やしました。

色は一色で単調な設定ですが、影と反射で表情が出ました。
色は一色で単調な設定ですが、影と反射で表情が出ました。これでレンダリング時間は1分10秒です。

 

何となく、両者の違いが見えましたでしょうか?

■2つのシェーダーの使い分け-1■
SSS:光が透過する立体的なものを表現するに最適
Translucent:光が透過するが平面的なものに最適

SSSを使用する代表的な質感は、「せっけん」「ろうそく」「ゴムやシリコン」「キャンディー」「肌」「透明でない飲料」などでしょうか。紙束や木、布なども、ものによってはSSSを使用するときれいになります。ただし、計算時間が掛かりますから、最終的にレンダリングした絵から得られる効果を考えて選択することも必要になります。
入門編ではまだ、そこまで想像できませんが……。

Translucentを使用する代表的な質感は、上記でも分かるとおり「葉」「紙(一枚一枚分かれたもの)」「薄い布」「曇りガラス」など、不透明で厚みを考慮しなくても良いシート状のものと考えることが出来ます。

ただし、そうでない場合もあります。

SSSは計算時間を食いますが、Translucentシェーダーを用いて疑似的にそれっぽい雰囲気を出すことも出来ます。例えば、部屋の窓際にロウソクが置いてあるような絵を作りたい場合、ロウソク自体の厚みの変化はさほど影響がなさそうです。
ロウソクには光沢も必要なので、Mix Shaderを使ってReflection(=反射)を加えます。

こちらが、〈Translucent+反射〉シェーダーでロウソクの質感を作った画像。
レンダリングに要した時間は1分18秒です。
ロウソクの立体的な形は反射によって表現されていますし、明暗もちゃんとあります。光の透過は少々不自然ですが、なんとなくそれっぽい感じには見えますね。
Translucent+Ref

次が〈SSS+反射〉シェーダーでロウソクの質感を作った画像。
レンダリングに要した時間は1分30秒です。
思ったほど時間の差は出ませんでした。でも、意外なことに光が透過した感じも出ていません。

SSS+Ref

実は、せっかくのSSSの効果が感じられないのはロウソクのサイズが先ほどまでのスザンヌよりずっと小さいからなのです。

27_05
こちらが、現在のシェーダー設定。 「Subsurface Scattering」と書かれている部分から下が、SSSの設定部分です。

 

初期値のまま1.0だった「Scale」の値を0.1にします。大きさが小さい分、10分の1にしてみるわけです。先ほどのものはロウソク全体に光が万遍なく透過していたのでSSSらしさがありませんでしたが、Scaleをロウソクのサイズに近づけることで〈薄い部分だけ光が通る〉ようになりました。透過部分が減ったことで思いのほかレンダリング時間は短くなり、1分23秒です。

SSS+Ref2

ずっとリアルになりましたし、ロウソクのずっしりとした感じも出ているかと思います。ちょっと暗くなりましたが、実際に逆光なので、明るさとしてはちょうど良い程度です。

アップで見たときの粒々なノイズ感もそれほど目立たないようです。ロウソクの形状がシンプルなので、計算の負荷が低いのでしょう。

最初はレンダリング計算時間を短くするためにTranslucentで代用することを考えていましたが、使い方によっては遜色ない時間で計算出来るようです。技術の進歩の、なんと速いことか!

それでも、様々な形状に対してSSSの最適な設定値を作るのは少し難しい場合があるかもしれません。そんなとき、もしもそのオブジェクトが主役級でなければ、Translucentで代用するという選択肢もあるのではないでしょうか。

せっかくなので小振りのスザンヌを置き、アングルを変えてレンダリングしてみます。スザンヌも蝋の質感になっていて、耳の光透過がきれいです。

SSS+Ref3

こうやって、簡単にバリエーションの画像が作れるところも3DCGの楽しいところですね!

■2つのシェーダーの使い分け-2■
SSS:設定もレンダリングもじっくり時間をかけてリアルに作りたい時
Translucent:取りあえず何となく光が透けた感じが出せれば良い時

こんな風に、臨機応変に考えても良いかと思います。


 

さて、今回は手取り足取りのチュートリアルではなく、見本とざっくり解説のみにしてみました。これまでずっと挑戦を続けてきて下さった皆さんなら、きっと今回の質感も作れると思います。

ただ、モデリングに関してはまだほとんど何も学んでいないに等しいので、形状は作れないですよね。最後にそれぞれのBlenderデータを置いておきますので、ぜひ、ご自分でも実際に試してみてください。全て設定済みのデータになります。

B99_27_1.blend
スザンヌが一つだけのシーン。SSSとTranslucentを切り替えるには、マテリアル・パネルで「Surface」を押して出てくるシェーダーメニューから選択します。
ここはもう、詳しい説明は不要ですよね?
27_06

 

B99_27_2.blend
草のシーン。最後のレンダリング結果と同じセッティングです。葉っぱを選択してノードエディターを見ると、下記のようになっています。TranslucentとSSSを繋ぎ替えると各々の違いを見ることが出来ます。

grass

 

B99_27_3.blend
ロウソクが壁際に置かれている最後のシーンです。こちらもTranslucentとSSSを繋ぎ替えて各々の違いを見られるようになっています。
このままレンダリングしても良し、色を変えてみても、カメラを動かしてアングルを変更しても面白いですね。candle

さて、今回の学びは以上でお終いです。
しっかり2つのシェーダーの違いと使いどころが分かりましたでしょうか?


【今回の学び】

・Subsurface Scattering(サブサーフェス・スキャタリング≒表面下光散乱)

・Translucent BSDF(トランスルーセント≒光透過)
【次回の学び】

・「その他」の質感を現すシェーダー3

今回も、お楽しみいただけましたでしょうか?
それでは、ぜひまた次回もお越しくださいね!

Happy Blending!!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>