BlenderのEeveeやCyclesで環境テクスチャ(Environment Texture)ノードを使用する場合のノードの組み方を紹介します。
1. HDR画像の準備
環境テクスチャ(Environment Texture)を使用する場合にはHDR画像(HDRI)が必要となるので、予め準備をしておいてください。
「free hdri」などのキーワードで検索すれば、フリーのHDR画像が見つかると思います。 HDRI Havenというサイトなどがおすすめです。
HDR画像には屋外/屋内/スタジオ、明るい/暗いなどいろいろありますが、HDR画像を見ただけでは実際にBlender内でどのようなレンダリング結果になるかは予想しづらいので、好みのものをいくつかダウンロードしておくといいと思います。
また、BlenderのフォルダのBlenderのバージョン\datafiles\studiolights\worldにある画像を使用しても構いません。
2. 環境テクスチャ(Environment Texture)を使用する場合のノードの組み方
Blenderを起動したら、初めからあるライト(Light)を削除した後、使用するレンダリングエンジンをプロパティ(Properties) → レンダ―(Render) → レンダーエンジン(Render Engine)でEeveeとCyclesから選択します(画像1参照)。CyclesとEeveeでノードの組み方に違いはありませんが、今回はEeveeを使用します。

画像1
エディタータイプ(Editor Type)を3Dビューポート(3D Viewport)からシェーダーエディター(Shader Editor)に変更して(画像2参照)、

画像2
左上にあるメニューで編集するシェーダーをオブジェクト(Object)からワールド(World)に変更した後(画像3参照)、

画像3
さらに画像4のようにノードを作成します。

画像4
画像4のノードは左から以下のようになっています。
- 追加(Add) → 入力(Input)から追加したテクスチャ座標(Texture Coordinate)ノード
- 追加(Add) → ベクトル(Vector)から追加したマッピング(Mapping)ノード
- 追加(Add) → テクスチャ(Texture)から追加した環境テクスチャ(Environment Texture)ノード
- 追加(Add) → シェーダー(Shader)から追加した(または初めからある)背景(Background)ノード
- 追加(Add) → 出力(Output)から追加した(または初めからある)ワールド出力(World Output)ノード
テクスチャ座標(Texture Coordinate)ノードとマッピング(Mapping)ノードを生成(Generated)とベクトル(Vector)でつなぎ、環境テクスチャ(Environment Texture)には開く(Open)ボタンを押して好みのHDR画像を設定してください。
テクスチャ座標(Texture Coordinate)ノードとマッピング(Mapping)ノードは必須ではありませんが、マッピング(Mapping)ノードの回転(Rotation)のZ軸の値を変更することでHDR画像もZ軸に回転させることができるので、光の当たり具合などを調整できます。
背景(Background)ノードの強さ(Strength)を調整すると、環境テクスチャ(Environment Texture)の明るさを調整できます。0にすると真っ暗になります(その他のライトがなければ)。
環境テクスチャ(Environment Texture)ノードと背景(Background)ノードの間に輝度/コントラスト(Bright Contrast)ノードやHSV(色相/彩度/輝度)(Hue Saturation Value)ノードなどを挟むと、HDR画像をある程度調整することも可能です。両方とも追加(Add) → カラー(Color)にあります。
ここまで作業が進んだら、エディタータイプ(Editor Type)を3Dビューポート(3D Viewport)に戻して、オブジェクトの表示方法をレンダ―(Rendered)に変更してみると(画像5参照)、

画像5
3Dビューポート(3D Viewport)の表示が画像6のようになっているはずです。

画像6
画像6のように背景にHDR画像が表示されていない場合はテンキーの5を押して投影方法を透視投影に変更してみてください。
平行投影の場合には背景にHDR画像がはっきりと映らなくなりますが、オブジェクトにあたる光自体には投影方法による違いはないので、どちらの投影方法を使用しても問題ありません。
3. プロパティ(Properties)のワールド(World)から環境テクスチャ(Environment Texture)を設定する方法
上で紹介した方法の他にプロパティ(Properties)のワールド(World)から環境テクスチャ(Environment Texture)を設定する方法もあります。
プロパティ(Properties) → ワールド(World) → サーフェス(Surface)のカラー(Color)の右側にある丸のアイコン(Blender 2.90ではColorの左側にある黄色のアイコン)がある場所をクリックして、環境テクスチャ(Environment Texture)を選択します(画像7参照)。

画像7
開く(Open)からHDR画像を設定します(画像8参照)。

画像8
シェーダーエディター(Shader Editor)のワールド(World)でノードを確認すると、画像9のようになっています。

画像9
画像4のノードとの違いはテクスチャ座標(Texture Coordinate)ノードとマッピング(Mapping)ノードがあるかどうかだけなので、必要な場合はこれらをつないでください。
4. レンダリング結果に背景のHDR画像を残さないようにするには
背景の環境テクスチャ(Environment Texture)はレンダリングしたときにもそのまま残りますが、以下のような方法で環境テクスチャ(Environment Texture)が背景に残らないようにすることもできます。
EeveeとCyclesでは方法が異なる部分もあります。
4.1 Eeveeで背景のHDR画像を残さないようにする方法
4.1.1 方法1
プロパティ(Properties) → レンダ―(Render) → フィルム(Film)にある透過(Transparent)にチェックを入れて、背景を透過させる(画像10参照)。

画像10
4.1.2 方法2
レンダリングされる範囲に背景用のメッシュで壁を置く。壁を置く場合は影への配慮も必要になります。
4.2 Cyclesで背景のHDR画像を残さないようにする方法
4.2.1 方法1
プロパティ(Properties) → ワールド(World )→ レイの可視性(Ray Visibility)にあるカメラ(Camera)のチェックを外す(画像11参照)。この方法を使うと、背景が真っ黒になります。

画像11
4.2.2 方法2
プロパティ(Properties) → レンダー(Render )→ フィルム(Film)にある透過(Transparent)にチェックを入れて、背景を透過させる(画像12参照)。

画像12
4.2.3 方法3
レンダリングされる範囲に背景用のメッシュで壁を置く。壁を置く場合は影への配慮も必要になります。
以上、Blenderの「環境テクスチャ(Environment Texture)ノードを使用する場合のノードの組み方」でした。
※この記事で使用しているのはBlender 2.90です。
※Blender 2.79b以前については「Blender 2.7x: 環境テクスチャ(Environment Texture)ノードを使用する場合のノードの組み方」で紹介をしています。
コメント