いろんなものを作ってみると、半透明なものって意外とたくさんあることに気づきます。紙・葉っぱ・プラスチック・布など、光が透けて見えるようなものってたくさんありますよね。いざ作ってみようと思うと、光が透過してこなかったり、うまく向こうの物体が透けて見えなかったりして表現が難しいと感じることも多いです。
物体をリアルに見せるためには、「光の透け感」も重要な要素で、和室の障子や、裏側から見ると緑に光っている葉っぱなどの薄い素材は、光が裏から回り込んで見えることで本物らしい自然な印象になります。


Blenderには、この「光が透けて見える」効果を簡単に再現できる Translucent BSDF シェーダーがあります。本記事では、Translucent BSDFの基本的な使い方から、光が透けた障子や葉っぱの作り方まで、半透明マテリアルの作り方を分かりやすく解説します。
レンダーエンジンは主に Cycles を使用しますが、基本的な概念は EEVEE でも応用可能です。
この記事は、BlenderのTranslucent BSDFの基本的な使い方について解説した初心者~中級者向けの記事です。
難易度
Translucent BSDFについて
Translucent BSDFノード は、表面を通過した光が反対側に散乱して出てくるような効果を出すためのノードです。
このノードはLambertian(ランバート)型の拡散透過を行います。Lambertianとは、見る角度に関係なく一様に光を散らすタイプの拡散モデルです。つまり、裏側から来た光を、ランダムな方向に分散しながら表面に出すイメージです。
注意ポイント
Translucent BSDF だけでは光が当たった側の面が暗くなりやすいため、反射光を表現するために、Principled BSDF や Diffuse BSDF と組み合わせるのが効果的です。


Color(カラー)
この面を透過してくる光の色を設定します。
物理的には「波長ごとに、どのくらい光が透けるかの確率」を表します。例えば白なら全体的によく透け、赤なら赤い光だけよく透ける、という意味になります。

画像はEEVEEです。
ライトが黄色の場合、青にすると、青い光の波長が存在してないため、透過してくる光が無くなります。
ライトを白くすると青い光の波長が存在しているので青い光を透過するようになります。

Normal(ノーマル)
シェーディングに使用する法線(Normal)を入力できます。
通常は何もつながなくてもBlenderが自動で使うシェーディングノーマル(元のジオメトリの法線をなめらかにしたもの)が使われます。バンプマップやノーマルマップを使いたいときはここに接続します。

画像はCyclesです。円柱の中に赤い球が入っています。
Bumpノードをつなぐ必要があります。
EEVEEとCyclesの違い
EEVEEは光が透けたような疑似的な表現がなされているだけです。Cyclesの方が物理的に光を透過し、リアルに見えます。(※Normalはわかりやすいようにわざと強くしています)

EEVEEにはMaterial OutputノードにThickness入力ソケットがあり、厚みを計算してシミュレーションしてくれます。0をいれるとCyclesの見え方に近づきます。(※それ以上の数字を変化させてみてもデフォルトのEEVEEの見え方からあまり変化はありませんでした。)

障子の紙マテリアル
※以下全てCyclesを使っています。
障子はジオメトリーノードで作りました。障子の向こうにスザンヌを置き、スザンヌの背後からエリアライト100w(黄色)で照らしています。
障子の紙の部分は右図のようになります。
Translucent BSDFのColorを白にして、Normalにノイズテクスチャの凹凸をBumpノードでつなぎます。

Transparent BSDFと組み合わせてるとビリビリの障子も作れます…。
Blenderやってるか見張るスザンヌ…。

葉っぱ
ちゃんと裏から見たときに光が透けて緑色に輝くような葉っぱも作れます。

Translucent BSDFのみだと、表面の反射が少ないので、表から見たとき、かなり暗くなってしまいます。
そして、Principled BSDFのみだと、光を通さないので裏から見たとき暗くなってしまいます。
そのためこの2つをMix Shaderで合成します。

※ちなみにPrincipled BSDFの伝播を上げて光を透過させる方法もありますが、
△伝播は光を透過・屈折させる
〇Translucentは光を透過して拡散させる(色が広がる)
ので、Translucentの方が現象としては近く、自然に見えます。

上図はPrincipled BSDFの伝播を上げたものですが、光が当たったところだけでなく、全体が透けてしまっています。
下図は葉っぱのテクスチャを使ってマテリアルを作るときに、Translucent BSDFもMixしたノード構成。Translucent BSDFも葉っぱの透明部分はTransparent BSDFで透明にしておきます。

透明の引き出し
無印でありそうな半透明のケースの引き出しです。引き出しの外側のケースはSolidifyモディファイアで厚みをつけています。メッシュの層が重なると中が透けにくくなってしまうので引き出しにはつけていません。

- Translucent BSDF
- Principled BSDF
- Roughness(荒さ)を上げてTransmittion(伝播)も上げてすりガラス状態にしたもの
この二つをMix Shaderで合成して透過性などを調整することができます。

まとめ
リアルなマテリアルを表現しようとすると、意外と身の回りのものって透けてる(光を通している)んだなぁということに最近気づくようになってきました。生物や植物、食べ物、よく見ると結構透けてます。
サブサーフェスは厚みが必要だったり、なかなかうまく効果がかからなくて大変でしたが、Translucent BSDFを使えば簡単に光を透過することができるので、今後はこのシェーダーもどんどん使っていこうと思っています。(無理やりサブサーフェスで発光しろ~って無茶な使い方して無駄な時間を過ごしていました…。)
この記事が、みなさんのCG制作に少しでも役立てば嬉しいです。