見出し画像

文系の blender 4.0 フレネル? IORってなに?

あちこちに見かけはするものの、その正体はよくわからないまま使い続けていたプロパティのひとつに、フレネルや、IORがあります。

ここでは、そのフレネルと IOR について整理してみました。あくまで文系の理解範囲になります。


環境 Blender 4.0.2 , Mac Mini M1 OS 14.2



フレネル(Fresnel)


下のややエッジのある球をみると、周辺部でしだいに光の反射が増しているのがみてとれるかと思う。ごく当たり前のことのようだが、これは、プリンシプルBSDFに内蔵されている「フレネル」が、そのように計算している結果だ。


必要な点のみごく簡単にまとめると、フレネル(の公式)によれば、物体の表面の光の反射率は、その表面を見る角度によって異なるのだ。

フレネル(Augustin Jean Fresnel 1788-1827)は、仏革命期の物理学者。スネルの法則で有名な、研究分野も似ているオランダの数学者スネル(Willebrord Snell 1580-1626)はもちろん別人。


フレネルの計算


「表面を見る角度」とは、正確には、物体の面のノーマル(面が向いているベクトル方向)と、視線によって作られる「入射角」のこと。

「入射角」がわかると、下のフレネルカーブから、その面の反射率を導くことができる。

「非金属」IOR1.5の場合
https://refractiveindex.info/

横軸が入射角、縦軸が反射率( 1 = 100% )を表す。上の入射角40度の場合、反射率は約4%だが、入射角85度では、60%近い高い反射率があることがわかる。

球の周辺で反射率が急に高くなっているのは、このフレネルカーブに従っているためだ。


IOR


通常、マテリアルの光沢を決める場合、「粗さ(Roughness)」を設定し、必要と余力があれば「IOR」を設定することが多いかもしれない。

実は、IORの値を変更することにより、われわれは、上のフレネルカーブに変更を加えている。下から、IOR 約 1.5、1.8、 2.4、のフレネルカーブだ。

plastic(1.48) - sapphire(1.76) - diamond(2.39)

IOR(Index Of Refraction)は、物質の「屈折率(Refraction)」を表す値で、屈折率から反射率も導くことができる。左の球の場合、IOR 1.48 の物質の反射率はもともと約 0.04(4%)にすぎない。

その4%を基底として、入射角が高い面は、フレネルカーブに従い反射率が上乗せされていくのである。

つまり、IORの値に基づく反射率と、入射角による反射率の増減が、オブジェクトのそれぞれの面の光沢を決めているのだ。


このため、その材質のIORの値を入力することによって、物理的に正しいフレネルの働きを再現することもできる。
材料の屈折率一覧表 Material IOR List

なお、上のようなIORの変更は、金属マテリアル(メタリックの値が 1 )の場合、ほとんど効果がない。特性上、そもそもおしなべて反射率が高いため、値の変更による変化がごく限られているためだ。


まとめ


  • オブジェクトの光沢の表現には、フレネルが大きく関与している。

  • フレネルの法則によれば、物体の面の反射率は、面の向き(ノーマル)と視線との角度によって異なる。

  • IOR(屈折率)の値によって、ベースの反射率がわかる。

  • IORの値を設定することで、フレネルの出力を操作している。





結論


プリンシプルBSDFが導入される以前、シェーダーエディターには、必ずといってよいほど、フレネルノードが存在し、その値は、IOR だった。

そのころ、わたしにとって、フレネルや IOR は、他の専門用語プロパティと同様、「よく知らないけど使うと効果のある呪文」のひとつに過ぎなかった。

ようやくなにを唱えていたのかを少し理解したような気がします。


なお、ごくごく簡略化してフレネルについて整理してみましたが、わかりやすく理解してもらえるよう、というよりは、わたしにはごくごく簡略化した図式しか理解できないためです。

間違いがありましたら、どうぞご指摘ください。

参考


この記事が気に入ったらサポートをしてみませんか?