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ビューポートで、確認する。
- カラーランプの反転を行う。
カラーランプ(ColorRamp)では、画素の色や明るさを変更することができる。
「カラーランプ」のノード内のメニューで、「カラーランプを反転」を選択する。
- カラーランプにより、反転するので確認する。
- ゲージを調整し、モルタルは白、レンガは黒になるように調整する。
- 「カラーランプ」のカラーを、「ベースカラー」から「粗さ」につなぎなおす。
- 回転させて、モルタルの部分は粗さが高く、レンガの部分は粗さが低いことを確認する。
演習
次のように「カラー」と「ベースカラー」を接続する。ほかは変更しない。結果を確認する。
Blenderのシェーダーツリーを用いた、バンプマップの設定
バンプマップ(Bump Map)(表面の凹凸を実際の形状変更なしに表現するテクスチャ技術)を設定する。
- 次の手順で、「レンガテクスチャ」を「ノイズテクスチャ」(ランダムなパターンを生成するテクスチャノード)に変更する。
- カラーランプの調整を元に戻す。左端が白、右端が黒になるようにする。
- 「ノイズテクスチャ」を追加する。「ノイズテクスチャ」は、メニューの「追加」の「テクスチャ」の下のメニューから追加できる。
- 下の図のように接続する。このとき、「レンガテクスチャ」は不要なので削除する。
- 表示を確認する。
- カラーランプの調整を元に戻す。左端が白、右端が黒になるようにする。
- 「バンプ」(表面の凹凸効果を生成するノード)を追加する。「バンプ」は、「追加」から「ベクトル」の下にある。
- 「カラーランプ」を追加する。「カラーランプ」は、メニューの「追加」の「コンバーター(Converter)」の下のメニューから追加できる。
- 下の図のように接続する。「バンプ」の「ノーマル」(表面の法線方向を示すベクトルであり、光の反射計算などに使用)は、「プリンシプルBSDF」の「ノーマル」につなぐ。
- これで、バンプの効果を確認する。
- バンプの「距離」(バンプによる凹凸の強さ)を変更してみる。
- バンプの距離が変化したことを確認する。
- 立体を回転して、バンプの効果を確認する。
- HDRI環境を別のものに変更して、バンプの効果を確認する。ビューポートシェーディングのアイコンの右にある下向き矢印のアイコンから開くポップオーバーで、別のHDRI環境を選択できる。
演習
ベースカラーは、ノイズテクスチャを利用するが、虹のような色ではなく、単色(輝度が変わる)に変更する。
- 「HSV(色相/彩度/明度)」(色の調整を行うノード)を追加する。これは、「追加」から「カラー」の「色相/彩度/明度」から追加する。
- 次のようにつなぎ、「カラー」は自由に設定する。
この時点でのBlenderファイル: 01c.blend