Blenderのシェーダーエディタ(Shader Editor)
【概要】
テクスチャマッピングを例として、Blenderのシェーダーエディタでシェーダーツリーを編集し、レンダリングする手順を説明する。シェーダーエディタの基本操作、テクスチャ座標の使用、粗さの設定、バンプマップの設定を扱う。
【目次】
【関連する外部ページ】
- Blenderの公式ページ: https://www.blender.org/
【サイト内の関連情報】
前準備
Blenderは,3次元コンピュータグラフィックス・アニメーションソフトウェアである.3次元モデルの編集,レンダリング,光源やカメラ等の設定による3次元コンピュータグラフィックス・アニメーション作成機能がある.
メニューの日本語化を行っておくと使いやすい.「編集(Edit)→プリファレンス(Preferences)→インターフェイス(Interface)→翻訳(Translation)」で設定できる.
Blenderのシェーダーツリー
マテリアルプレビューモード、HDRI環境の設定
マテリアル(3Dオブジェクトの表面特性を定義する設定群)を3Dビューポートで確認するために、3Dビューポートをマテリアルプレビューモードに変更する。あわせて、HDRI環境(3Dビューポートを照らすHDRI画像による照明)の設定も行う。
- マテリアルプレビューモードに切り替える。
3Dビューポート右上に並ぶビューポートシェーディングのアイコンのうち、左から3番目の「マテリアルプレビュー」をクリックする(ショートカットキー:Zでパイメニューを開く、Shift + Zで直前の表示モードと切り替え)。
マテリアルプレビューは、EEVEEとHDRI環境を用いて3Dビューポートを描画する表示モードであり、マテリアルの調整やテクスチャのペイントで使う。
- HDRI環境の設定を行う。ビューポートシェーディングのアイコンの右にある下向き矢印のアイコンをクリックするとポップオーバーが開く。「シーンのワールド」のチェックを外すと、Blenderに内蔵されているHDRI環境の一覧から選択できる。ここでは、一番左のcity.exrを選ぶ。
シェーダーエディタを使ってみる
シェーダーエディタは、マテリアルの設定をシェーダーツリー(マテリアルの外観や特性を定義するノードの接続関係図)の編集で行うエディタである。ノードの接続関係を見ながら、マテリアルの詳細な設定ができる。
- Blenderのワークスペースを「シェーディング(Shading)」に変更する。
- 「Shading」のワークスペースに変わるので確認する。
下側の画面は、シェーダーエディタ(Shader Editor)である。この中に、シェーダーツリー(Shader Tree)が表示されている。シェーダーツリーでは、ノード(特定の機能や処理を持ったシェーダーの構成要素)が互いに接続されている。初期状態では、「プリンシプルBSDF」(物理ベースのシェーディングモデルを実装したマテリアルノード)と「マテリアル出力」の2つのノードが接続されている。
- シェーダーエディタでは、シェーダーツリーの編集ができる。ノードの移動は、マウス操作で行う。
ノードの削除は、削除したいノードの右クリックメニュー(ノードコンテキストメニュー)で行う。
ノードの追加は、メニューの「追加」で行う。
ノード間の接続は、マウス操作で行う。
演習
シェーダーツリーを、次の3つのノードを使うように設定する。
- 「レンガテクスチャ」(レンガのパターンを生成するテクスチャノード)
- 「プリンシプルBSDF」
- 「マテリアル出力」
次のように操作する。
- 「レンガテクスチャ」を追加する。「レンガテクスチャ」は、メニューの「追加」の「テクスチャ」の下のメニューから追加できる。
- 「レンガテクスチャ」を追加したら、下の図のように接続する。「レンガテクスチャ」の「カラー」を、「プリンシプルBSDF」の「ベースカラー」に接続する。
- 3Dビューポートで確認する。
- 「レンガテクスチャ」の「色1」、「色2」、「モルタル」の色を調整する。色は自由でよいが、「モルタル」は、「色1」と「色2」よりも暗い色に設定する。
3Dビューポートの表示を確認しながら、色の調整を行う。
この時点でのBlenderファイル: 01a.blend
テクスチャ座標のノードを使用
「テクスチャ座標」(3Dオブジェクト上でテクスチャが配置される位置を指定する座標系)のノードを追加し、その出力を、テクスチャのノードの「ベクトル」につなぐ。このとき、次の2つの違いを確認する。
- 「テクスチャ座標」のノードの「UV」(オブジェクト表面に2次元テクスチャを配置するための座標)
- 「テクスチャ座標」のノードの「オブジェクト」(オブジェクトのローカル座標)
- 「テクスチャ座標」を追加する。「テクスチャ座標」は、メニューの「追加」の「入力」の下のメニューから追加できる。
- 「テクスチャ座標」を追加したら、下の図のように接続する。「テクスチャ座標」の「UV」を、「レンガテクスチャ」の「ベクトル」に接続する。これは、「UV」を使うための設定である。
- 3Dビューポートで確認する。
- 次に、下の図のように接続する。「テクスチャ座標」の「オブジェクト」を、「レンガテクスチャ」の「ベクトル」に接続する。これは、「オブジェクト」を使うための設定である。
- 3Dビューポートで確認する。
この時点でのBlenderファイル: 01b.blend
テクスチャを用いた粗さ(Roughness)の設定
テクスチャを用いて、粗さ(表面の微細な凹凸による光の散乱度合い)を設定する。ここでは、レンガは粗さが低く(なめらか)、モルタルは粗さが高く(ざらざら)なるように設定する。
- 「カラーランプ」(入力値に応じて色を変換するコンバーター)を追加する。「カラーランプ」は、メニューの「追加」の「コンバーター(Converter)」の下のメニューから追加できる。
- 「カラーランプ」を追加したら、下の図のように接続する。「レンガテクスチャ」の「カラー」と、「カラーランプ」の「係数(Fac)」をつなぐ。「カラーランプ」の「カラー(Color)」と、「プリンシプルBSDF」の「ベースカラー」をつなぐ。
- 3Dビューポートで確認する。
- カラーランプの反転を行う。
「カラーランプ」のノード内のメニューで、「カラーランプを反転」を選ぶ。
- 色が反転するので確認する。
- カラーランプのカラーストップ(色の位置を指定するつまみ)の位置を調整し、モルタルは白、レンガは黒になるようにする。
- 「カラーランプ」の「カラー」の接続先を、「ベースカラー」から「粗さ」につなぎ直す。
- 立体を回転させて、モルタルの部分は粗さが高く、レンガの部分は粗さが低いことを確認する。
演習
次のように「カラー」と「ベースカラー」を接続する。ほかは変更しない。結果を確認する。
Blenderのシェーダーツリーを用いた、バンプマップの設定
バンプマップ(Bump Map)(形状を変えずに表面の凹凸を表現するテクスチャの技術)を設定する。
- 次の手順で、「レンガテクスチャ」を「ノイズテクスチャ」(ランダムなパターンを生成するテクスチャノード)に変更する。
- カラーランプの調整を元に戻す。左端が白、右端が黒になるようにする。
- 「ノイズテクスチャ」を追加する。「ノイズテクスチャ」は、メニューの「追加」の「テクスチャ」の下のメニューから追加できる。
- 下の図のように接続する。「レンガテクスチャ」は使わないので削除する。
- 表示を確認する。
- カラーランプの調整を元に戻す。左端が白、右端が黒になるようにする。
- 「バンプ」(表面の凹凸効果を生成するノード)を追加する。「バンプ」は、「追加」の「ベクトル」の下のメニューから追加できる。
- 「カラーランプ」を追加する。「カラーランプ」は、メニューの「追加」の「コンバーター(Converter)」の下のメニューから追加できる。
- 下の図のように接続する。「バンプ」の「高さ」には、ノイズテクスチャの出力をつなぐ。「バンプ」の「ノーマル」(表面の法線方向を示すベクトルで、光の反射計算に使用)は、「プリンシプルBSDF」の「ノーマル」につなぐ。
- バンプの効果を確認する。
- バンプの「距離」(凹凸の強さ)を変更する。
- 凹凸の強さが変わったことを確認する。
- 立体を回転させて、バンプの効果を確認する。
- HDRI環境を別のものに変更して、バンプの効果を確認する。ビューポートシェーディングのアイコンの右にある下向き矢印のアイコンから開くポップオーバーで、別のHDRI環境を選ぶ。
演習
ベースカラーはノイズテクスチャを利用するが、虹のような色ではなく、明るさが変化する単色に変更する。
- 「色相/彩度/明度(HSV)」(色の調整を行うノード)を追加する。これは、「追加」の「カラー」の「色相/彩度/明度」から追加する。
- 次のようにつなぎ、「カラー」は自由に設定する。
この時点でのBlenderファイル: 01c.blend