[ver.20] PBRマテリアルでのオクルージョン

  • オクルージョン


PBRマテリアルでの「オクルージョン」は、「アンビエントオクルージョン (Ambient Occlusion : AO)」とも呼ばれるものです。
これは、形状の凹凸を元にテクスチャに対してグレイスケールの遮蔽の濃淡をマッピングし、
陰影を強調する効果を出します。
光学的に正しい影/陰ではありませんが、PBRの表現ではよく利用されます。
AOで表現するものは、影ではなく「遮蔽」になります。
そのため、シーンの光源の配置に限らず汎用的に使用できる要素になります。

例えば以下の図の場合、ある一点から半球状にレイを飛ばし衝突を確認しています。

この場合は、5回のうち3回の衝突が発生したことになります。
「1.0 – (3/5) = 0.4」がオクルージョン値になります。これが0.0(黒)に近いほど遮蔽が発生することになります。
これを、あらかじめ割り当てられている「重ならないUVマップ」のイメージに、1ピクセルごとに割り振っていきます(焼き付け、ベイクと呼ばれます)。
このテクスチャイメージを「オクルージョンマップ(アンビエントオクルージョンマップ : AOマップ)」と呼びます。

上の画像では、首や脇、股部分が暗くなっています。
これは陰(Shade)ではなく、アンビエントオクルージョンのテクスチャマッピングになります。

オクルージョンマップの作成手段

ver.20のPBRマテリアルでは、「オクルージョン」のマッピング指定に対応しています。
Shade3D本体は、この「オクルージョンマップ」を作成する機能はありませんが、
Shade3Dのマーケットプレイスで公開されているプラグイン「AOUtil」( https://shade3d.jp/store/marketplace/ft-lab/aoutil/aoutil.html )を使用することでアンビエントオクルージョンマップとして、
テクスチャにオクルージョンを焼き付ける(ベイクする)ことができます。

以下のような形状/UVを用意しました。

AOUtilプラグインを使用して、以下のようなアンビエントオクルージョンマップ(AOマップ)を作成しました。

AOUtilを使用したAOマップの作成については、以下の内容もご参照くださいませ。
https://shade3d.jp/store/marketplace/articles/polydecharacter/ao.html

オクルージョンマップの指定

対象形状のPBRマテリアルのマッピングで「イメージ/オクルージョン」を指定し、AOマップのテクスチャイメージを割り当てます。
また、合成を「乗算」にします。

このAOマップはUVに合わせてベイクされたものになります。
UVレイヤの指定も確認しておいてください。
マッピングレイヤの「適用率」を調整することで、オクルージョンの影響を調整できます。

レンダリングでオクルージョンを反映

レンダリング設定の「大域照明」タブで、「大域照明」を「パストレーシング」または「フォトンマッピング」にします。

大域照明を使用しない場合は、環境光を使用することでオクルージョンは反映されます。

レンダリング結果は以下のようになりました。
以下では、オクルージョンのOn/Offを交互に表示しています。

オクルージョンのみをレンダリングして分かりやすくしました。

オクルージョンのみを確認

レンダリングでオクルージョンを明確に確認したい場合、
すべての光源を無効にして、環境光を1.0で配置するのが有効です。

レンダリング設定で、手法を「レイトレーシング」、大域照明を「無し」でレンダリングすると以下のようになりました。

↓ オクルージョンを0.0にした場合

↓ オクルージョンを1.0にした場合

オクルージョンは、影が落ちる部分(間接照明の影響を受ける部分)の陰影をより強調する効果があります。
直接光が当たる箇所ではオクルージョンは薄くなります。
オクルージョンを使うことにより、よりフォトリアルなシーンを表現する際に役に立ちます。

カテゴリー: リニアワークフローとPBRマテリアル