[blender]フレネル反射を設定する方法[ノード]

blender2.82a使用
フレネル反射を設定する方法を紹介します。
フレネル反射とは水面などで足下は透けて見えるのに、遠くに行くほど光を強く反射する現象の事です。

画像で説明するとこんな感じです。

比較するとこのような違いがあります。



フレネル反射の設定をする

ではやっていきましょう。
まず水面となる平面を追加します。
拡大した後、水底になる平面を複製します。何かしら物体がないと屈折している事が分からないからです。
水底に適当なテクスチャを設定しましょう。今回は市松模様を設定しました。
続いて水面となる平面に屈折BSDFを設定します。
そして水面の反射が分かるように新たに平面を追加して水面の奥に配置して分かりやすい色を設定します。


 続いてシェーダーエディターで水面の平面のマテリアルを編集します。
光沢BSDF(いわゆる反射)を追加します。
更にシェーダーミックスを追加し上に屈折BSDF、下に光沢BSDFを繋ぎます。
水面なので光沢の荒さは0にしましょう。


これだけではフレネル反射を再現できません。
一旦、シェーダーミックスに繋がっている二つを外します。
放射を追加しシェーダーミックスの下に繋ぎます。
そして入力→フレネルを追加してシェーダミックスの係数に繋ぎます。
レンダープレビューで確認すると奥に行くほど白くなっているのが分かります。
これがフレネルの値です。
効果を強調する為にカラーランプノードを挟んでフレネルの値を調整します。
この値を係数に使ってシェーダーをミックスしていきます。
黒い部分が上につながっているシェーダーになり白い部分は下のシェーダーになる訳です。


放射ノードを削除して、再びシェーダーミックスの上に屈折BSDF、下に光沢BSDFを繋ぎます。
今度は奥に行くほど光沢BSDFの効果が強く出て手前は屈折BSDFの効果が強く出るようになりました。



奥はほぼ反射しかしていない
これがフレネル反射です。

他にもあるフレネルノード
フレネルノードだけではありません。
同じく入力→レイヤーウェイトにもフレネルがあります。若干設定方法と結果が違うようですが。それと前方向もフレネルに使えそうなノードです。どちらもカメラとの角度によって値が変わります。
放射ノードを繋いで確認してみて下さい。


フレネルノードを調整せずにそのまま使って、波のアニメーションを付けたのが冒頭の比較動画になります。フレネルの効果は抑え気味にしましたがそれでもフレネル反射無しと比べると一目瞭然です。

波の作り方は[blender]ディスプレイスで平面から海や湖の波を作る方法(おまけ有り)[3DCG]をご覧ください。

フレネル反射は濁りの表現と並んで水をリアルにする設定方法です。
併せて[blender]海や湖の濁りを表現する方法と、3Dフォグとコンポジットの合わせ技で空気感を出す方法もご覧下さい。