Blender で HDR 画像を使った IBL ( Image Based Lighting ) のやりかたです。 まぁこのことについては、いろんなブログなどで情報が出ているので、わざわざこのブログで記事にすることもないとは思ったのですが、基本的なことなので一応書いておきたいと思います。 なおこの記事では Cycles でレンダリングしています。
ワールドノードを使ってHDRIを環境テクスチャにする
HDR 画像で IBL を行うには、ワールドの環境テクスチャに HDR 画像を設定します。 ワークスペースから「Shading」を選ぶと作業がしやすいと思います。
「ノードを使用」にチェックをいれて、「ワールド」を選択します。 Shift + A キーから「テクスチャ」→「環境テクスチャ」ノードを追加して、好みの HDR 画像を開きます。 これで IBL の完成です。
つぎに HDRI 画像を回転して、自由に光源の角度を変えられるようにしていきます。 Shift + A キーから「入力」→「テクスチャ座標」ノードと「ベクトル」から「マッピング」ノードを追加して、下記のようにノードを組みます。
テクスチャ座標の「回転」の Z 軸を変更すると、HDRI画像が回転します。
※Blender にデフォルトでインストールされているアドオン「Node Wrangler」を有効にしておけば環境テクスチャノードをアクティブにしておいて Ctrl + T キーを押すだけでテクスチャ座標ノードとマッピングノードを追加できます。
HDRIでライティングの強さと背景の明るさを別々に調整する
HDR 画像のライティングを調整するには「強さ」を調整しますが、画像の明暗を調整するのでライティングを弱くすれば背景画像も同時に暗くなってしまいます。 そこでライティングの強さと背景画像の明るさを別々に調整できるようにノードを組み直してみます。
まずは「背景シェーダー」をもうひとつ追加して HDRI 画像とつなげます。
次に「入力」→「ライトパス」ノードと、「シェーダー」→「シェーダーミックス」ノードを追加して、下記のようにつなげます。
ふたつある背景シェーダーのうち、上の背景シェーダーの強さではライティング、下の背景シェーダーの強さでは背景画像の明るさを調整できます。
地面を設定して影を落とす
HDRI を環境テクスチャに設定しただけだと、地面が設定されていないので影が落ちません。
影を落としたい場合は、地面となるオブジェクトを用意する必要があります。 今回はシンプルに「平面」を追加して地面に見立てていきます。
まずは Shift + A キーから「平面」のメッシュを追加して、手頃な大きさに拡大します。
オブジェクトプロパティタブにある「シャドウキャッチャー」にチェックをいれます。 すると平面には HDR 画像が反射して、背景画像との境目がなくなります 。 平面が透明になったように見えますが、そうではなく鏡のように HDR 画像を反射しています。
一見これでよさそうなのですが、もとの平面の色が白かったので地面からの反射光が強すぎます。 なので平面にマテリアルを設定して色を変更します。
背景の地面の色をスポイトでとり若干暗めにして平面の色に設定しました。 真っ白の場合とくらべて反射光が抑えられました。