K06のBLOG

BlenderとInkscapeとDavinciResolveを使用する上での日記的なブログ

【blender3.0】プリンシプルBSDFの使い方 他

f:id:K06:20220223174447p:plain

blenderのマテリアルについて3回目の投稿です。

どうもこんにちは!筆者のK06です。

今回はblenderデフォルトで設定されてるプリンシプルBSDFシェーダーについて説明していこうと思います。

デフォルトで設定してあるだけありプリンシプルBSDFで殆どのマテリアルを作ることができますので、目的が無い限り変更する必要は無いでしょう。

ガラスの表現だけでいいからグラスBSDFでレンダリングを軽くしたい場合等の目的です。

プリンシプルシェーダーだけで殆どのマテリアルの表現ができる分、初心者さんには複雑にみえてると思いますのでなるべくわかりやすく説明したいと思います。


2022/02/27追記 動画を作りましたので良ければ合わせて御覧ください。

www.youtube.com

プリンシプルBSDFシェーダーの使い方

上から説明していきます。

GGXとは

まずGGXから説明していきますね。

GGXの言葉の意味はわかりませんが、GGXより複合乱数GGXのほうが粗さの光の反射の精度をより正確に書き出せる設定です。

GGXについては先日書きました(下記リンクに詳しいことは書いてます)

過去記事は古いパソコン+blender2.79b(古いバージョン)でGGXと複合乱数GGXを試した結果となります。

その後、数年前のパソコン+blender3.0で試してみた結果、レンダリング時間もコンマ数秒程度で、各GGXの違いは目で見てわかりませんでした。(blender3.0はでデノイズ

が強化されてるのでわからないのかもしれませんね。)

GGXから複合乱数GGXに変更してみて変化がわからないならGGXのまま変更しなくていいと思います。

f:id:K06:20220223174904p:plain


ランダムウォークとは

ランダムウォークはSSS(サブサーフェススキャッタリング)、肌が透ける血潮(ちしお)の表現に使われるみたいです。

後に説明するサブサーフェスを使わないのであれば使う必要はありません。

デフォルトはランダムウォークでChristensen-Burley、ランダムウォーク(範囲固定)とありますね。

blenderマニュアルによると、これも精度の違いのようです。

Christensen-BurleyがSSSの精度が低く、ランダムウォークが中間、ランダムウォーク(範囲固定)が一番精度がよいとされています。

f:id:K06:20220223174938p:plain

ベースカラー

ベースカラーは読んだままです。オブジェクトの色を変更出来ます。

ベースカラーの横の枠内をクリックすると、カラーピッカーや彩度のバー、RGB(R→赤 G→緑 B→青 A→透明度)HSV(H→色相 S→彩度 V→明度)、16進数のコードもしくはスポイトでblender内の色を吸い取ることで色を変更出来ます。

f:id:K06:20220223175005p:plain

余談ですがblenderのスポイトはカナリ優秀で、blender内であればUI(ユーザーインターフェイス)の色まで吸い取ることが出来ます。

f:id:K06:20220223175234p:plain

サブサーフェス、サブサーフェスIOR

サブサーフェスランダムウォークの項で話しました、SSS(サブサーフェススキャッタリング)のことで、人間の肌や大理石、牛乳などを表現する時に使います。

例えばベースカラーを白に、サブサーフェスカラーをクリーム色にし、サブサーフェスIORを1.35 → 粗さを0 → サブサーフェスの値をいい感じに上げると牛乳のような表現が可能で

す。

f:id:K06:20220223175314p:plain

IORは屈折率のことで、サブサーフェスIORはサブサーフェスの屈折率です。

作りたい物によって数値が決まってます。IORの値をまとめてくれてる便利なサイトがあるので、以下にリンクを貼っておきますね。

IORのリンクへ



サブサーフェス範囲

サブサーフェス範囲はblenderマニュアルでは難しいことが書いてありますが、色に関係してます。

一番上の値を上げる事でサブサーフェスのR(赤)が強くなり、真ん中の値を上げるとG(緑)、一番下の値を上げるとB(青)の色が強くなります。

f:id:K06:20220223175730p:plain


サブサーフェスの色を調整するのに良いかもしれません。


メタリック

メタリックは金属を表現出来ます。

メタリックの数値を1にすることで金属の表現が出来ますね。

f:id:K06:20220223175919p:plain

メタリックを1の状態でベースカラーを金色にするとゴールドなんかも表現できます。

注意点としては、メタリックで白は表現できません。

メタリックの値が1の時は白=シルバーとなりますのでご注意ください。


スペキュラー

スペキュラーは値が大きいほどライトや環境光、間接光の反射や光沢が強くなります。

0で反射なし、1で反射が大きくなりますね。

f:id:K06:20220223180009p:plain

スペキュラーの注意点は、メタリックの値が1でベースカラーが明るい時は適用されません。

スペキュラーチント

スペキュラーチントはblenderマニュアルを読んだ限りでは誘電体の設定のようです・・・。

マニュアルにも物理的に正しくないと書かれている為、リアルなものを作りたい場合にはいじる必要が無いと思います。

粗さ

粗さは読んでそのままです。粗さ0でサーフェスがつるつるになり、1でザラザラになります。

異方性、異方性の回転

異方性は金属の加工でよくある、いわゆる「ヘアライン加工」というものです。

f:id:K06:20220223180110p:plain

異方性を使う時の注意点はCyclesレンダーでしかサポートされていないことです。

Eeveeで異方性のような事を実現したい場合、テクスチャとバンプマップ等のマップ類を設定する必要があります。

同じく異方性の回転もCycles限定です。この値をいじることで見え方が変わってくるので0から360度の間でお好みで設定すると良いでしょう。

シーン、シーンチント

シーンとシーンチントは違いがわかりませんでしたので省略します。

クリアコート

クリアコートも読んで字のごとく、塗装のクリアコートやワックスのような表現をしたいときに数値を上げます。

粗さを上げた木目の上にクリアコートの値を上げるとリアルになると思います。

f:id:K06:20220223180238p:plain

クリアコートの粗さ

粗さを上げると反射がすくなくなり、下げるとつるつるになり反射が強くなります。

床のワックス等を表現する時はクリアコートの粗さを気持ち上げることでよりリアルになると思います。

IOR

IORはサブサーフェスのIORの時と同じで、後に説明する伝播(ガラスやダイヤモンド等の表現)をする時の屈折率を指定します。

f:id:K06:20220223180335p:plain

IOR値をまとめて書いてくれている便利なサイトがあるのでリンクを貼っておきますね。


伝播(でんぱ)

伝播を1にするとガラスやダイヤモンド、水晶等を表現することが出来ます。


Eeveeで伝播をレンダリングするにはマテリアルプロパティー下の設定からスクリーンスペースの屈折にチェック

それからレンダープロパティーのスクリーンスペースの反射と屈折にチェックを入れると良いでしょう。

f:id:K06:20220223180453p:plain

伝播の粗さ

伝播の粗さもそのままの意味です。

ただ注意点が1つありまして、伝播の粗さが0になっててもデフォルトで粗さが入ってるとすりガラスのようになりますのでご注意ください。

f:id:K06:20220223180603p:plain

放射

放射も読んだまま設定した色でサーフェスを光らせることが出来ます。

放射はテクスチャを作る時やCyclesレンダーでレンダリングする際に便利です。(Eeeveeは放射の光は他のオブジェクトに反射しません。)

全部がマテリアルについてでは無いですが過去動画でやってますので良ければ御覧ください。


放射の余談ですが、プリンシプルBSDFの放射ともう1つ放射シェーダーというものがあります。

どちらも光を出す設定というのは同じなんですが、プリンシプルBSDFの放射はライトや反射光等の影響を受け、放射シェーダーはライトの影響をうけません。

放射はもう1つ注意点がありまして、値が大きかったり低かったりするとオブジェクトの明度が変わってくるので注意が必要です。

大きすぎるとオブジェクト自体は白になり、光が放射の色で指定した色になります。

アルファ

アルファはオブジェクトをどれだけ透明にするかを設定する項目です。

アルファが1で完全に不透明0で透明になります。

ただしEeveeでアルファを使う場合のみマテリアルプロパティーで設定しないとアルファが有効になりません。

f:id:K06:20220223180728p:plain

マテリアルプロパティ → 設定タブ →不透明をアルファブレンドもしくはアルファハッシュに設定しアルファを徐々に下げるとだんだん透明になります。

f:id:K06:20220223180758p:plain

影もアルファチャンネルで消したい場合は影のモードをなしにするといいでしょう。

ノーマル

ノーマルにバンプマップやノーマルマップを貼ることで擬似的にメッシュに高さを付ける事ができます。

シェーダーエディタでノーマル(法線)マップを貼ってみましょう。

というところでテクスチャを貼りたいのですが、テクスチャがないと思いますので下記サイトからダウンロードしてみてください。(テクスチャのダウンロード、ご利用は自己責任でお願いします。)

筆者はウッドテーブル001をダウンロードしました。

ダウンロードしたzipを右クリック → すべて展開 で解凍しましょう。

今からノーマルマップ(nor)を貼ってみます。ノーマル(法線)マップはメッシュの形を変えず、擬似的な凹凸を作ることが出来ます。

続いてヘッダーメニューからShadingを選択し、シェーダーエディタを表示しときます。

〇〇_nor.exrをシェーダーエディタにドラッグアンドドロップで読み込み、色空間をNon-Colorにしましょう。(拡張子がpngのノーマルマップの場合はリニアでもいけますが、exrはNon-Colorにしないと表示がおかしくなりました。)

f:id:K06:20220223181047p:plain

続いてShift+A → ベクトル → ノーマルマップを追加します。

テクスチャのカラーをノーマルマップのカラーへ、ノーマルマップのノーマルをプリンシプルBSDFのノーマルにつなげるとメッシュに凹凸がついたはずです。

f:id:K06:20220223181123p:plain

他のマップも貼ってみよう

Polyhavenでテクスチャをダウンロードしたらついてくる他のテクスチャもせっかくなんで貼ってみましょう。

ノーマルマップ(nor)の他に、ディフューズマップ(diff)とラフネスマップ(rough)とディスプレイスメントマップ(disp)があると思います。

ディスプレイメントマップはプリンシプルBSDFとは関係ないので、ディフューズマップとラフネスマップを貼ってみましょう。

ディフューズテクスチャを読み込んでカラーをプリンシプルBSDFのカラーにつなげます。

するとメッシュに色がついたはずです。

続いてラフネスマップを読み込み、カラーをプリンシプルBSDFの粗さにつなげます。

f:id:K06:20220223181239p:plain

ノードを全体的に見ると以下の画像のようになります。

f:id:K06:20220223181516p:plain

ライトの位置や強さでだいぶ見た目が違って見えますよ。

クリアコート法線とタンジェントについてはいまいち使い所がわからないので省略します。

6.最後に

プリンシプルBSDFのメタリック、伝播、放射の強い順を書いておきます。

放射 → メタリック → 伝播 の順に強いです。

例えば伝播を1に設定してもメタリックのままだったり、放射のままの場合はメタリックや放射の値を0にするとガラス等の表現ができるはずです。

これでマテリアルに関する説明は終わりです。

こんな長い記事を最後までご視聴頂きありがとうございます。お疲れさまでした!