文系の blender 4.0 フレネル? IORってなに?
あちこちに見かけはするものの、その正体はよくわからないまま使い続けていたプロパティのひとつに、フレネルや、IORがあります。
ここでは、そのフレネルと IOR について整理してみました。あくまで文系の理解範囲になります。
環境 Blender 4.0.2 , Mac Mini M1 OS 14.2
フレネル(Fresnel)
下のややエッジのある球をみると、周辺部でしだいに光の反射が増しているのがみてとれるかと思う。ごく当たり前のことのようだが、これは、プリンシプルBSDFに内蔵されている「フレネル」が、そのように計算している結果だ。
必要な点のみごく簡単にまとめると、フレネル(の公式)によれば、物体の表面の光の反射率は、その表面を見る角度によって異なるのだ。
フレネルの計算
「表面を見る角度」とは、正確には、物体の面のノーマル(面が向いているベクトル方向)と、視線によって作られる「入射角」のこと。
「入射角」がわかると、下のフレネルカーブから、その面の反射率を導くことができる。
横軸が入射角、縦軸が反射率( 1 = 100% )を表す。上の入射角40度の場合、反射率は約4%だが、入射角85度では、60%近い高い反射率があることがわかる。
球の周辺で反射率が急に高くなっているのは、このフレネルカーブに従っているためだ。
IOR
通常、マテリアルの光沢を決める場合、「粗さ(Roughness)」を設定し、必要と余力があれば「IOR」を設定することが多いかもしれない。
実は、IORの値を変更することにより、われわれは、上のフレネルカーブに変更を加えている。下から、IOR 約 1.5、1.8、 2.4、のフレネルカーブだ。
IOR(Index Of Refraction)は、物質の「屈折率(Refraction)」を表す値で、屈折率から反射率も導くことができる。左の球の場合、IOR 1.48 の物質の反射率はもともと約 0.04(4%)にすぎない。
その4%を基底として、入射角が高い面は、フレネルカーブに従い反射率が上乗せされていくのである。
つまり、IORの値に基づく反射率と、入射角による反射率の増減が、オブジェクトのそれぞれの面の光沢を決めているのだ。
まとめ
オブジェクトの光沢の表現には、フレネルが大きく関与している。
フレネルの法則によれば、物体の面の反射率は、面の向き(ノーマル)と視線との角度によって異なる。
IOR(屈折率)の値によって、ベースの反射率がわかる。
IORの値を設定することで、フレネルの出力を操作している。
結論
プリンシプルBSDFが導入される以前、シェーダーエディターには、必ずといってよいほど、フレネルノードが存在し、その値は、IOR だった。
そのころ、わたしにとって、フレネルや IOR は、他の専門用語プロパティと同様、「よく知らないけど使うと効果のある呪文」のひとつに過ぎなかった。
ようやくなにを唱えていたのかを少し理解したような気がします。
参考
この記事が気に入ったらサポートをしてみませんか?