[blender]海や湖の濁りを表現する方法と、3Dフォグとコンポジットの合わせ技で空気感を出す方法

blender2.82a使用
最初に[blender]ボリューメトリックライトの使い方と3Dフォグで空気感を出す方法の記事で3Dフォグで空気感をだす方法を紹介しました。
それと同時に[ノード]Z値やミストを使って簡単に空気感を出そう[blender]での2D処理の欠点も紹介しました。
しかしです、3Dフォグを使った方法とコンポジットで空気感をだす方法は若干毛色が違うかなと思いました。

  • コンポジットの場合遠くに行くほど明るくする事ができる
  • 3Dフォグは遠くに行く程暗くなってしまう
という理由からです。フォグつまり霧ですから遠くの空気のかすみを表現するのとはちょっと違うかなと。
で、考えました。こうなれば良いのだと
ちなみに両方とも使った色は同じです
では3Dフォグの改良版からいきましょう。









2Dミストの欠点
前の記事でも書きましたが、2Dミストの場合、ガラスや鏡など屈折や反射を反映する事ができません。
カメラからの距離の値(深度)を使って合成しているからです。
こうするとわかりやすいでしょう。


3Dフォグの欠点をコンポジットで解消
3Dフォグなら手前に屈折や反射オブジェクトがあったとしても正しく処理されます。しかし冒頭にも書いた通り奥に行くほど暗くなってしまいます。


そこでパスにボリュームの直接照明を追加してコンポジットの素材にします。
レンダリング後コンポジターでVolumeDirをビューアーで確認します。
確認できたらミックスカラーを追加し係数にVolumeDirを繋ぎ上の画像に元画像を繋ぎます。
そして下に青色を設定してスクリーンや追加などで明るく合成します。
できたらコンポジットに繋いで再度レンダリングして完了です。





いかがでしょうか?
これで3Dの正確さとコンポジットの自由さを両立できると思います。










海や湖の濁りを表現する方法
これもボリュームの応用なのですが、海や湖は深くなるほど見えにくくなりますよね?
この表現は表面であるサーフェスのマテリアルだけではできません。
サーフェスのマテリアルだけでは深さによる濁りの表現ができない

こういう場合はボリュームの吸収を使います。



ボリュームの吸収を追加した結果。深い所にある青い球体が見えにくくなった

水面に近ければ見えます、表面だけのサーフェスの設定ではできないことです
ボリュームシェーダーは煙や火炎などのシミュレーション以外にも使えるのです。活用しましょう。