なつねこメモ

主にプログラミング関連のメモ帳 ♪(✿╹ヮ╹)ノ 書いてあるコードは自己責任でご自由にどうぞ。記事本文の無断転載は禁止です。

宝石の屈折率から Specular の値を求める

こんばんは!わたしだよ!
ここ数日、というか昨日と今日ですけども、ひたすら Blender で図形作っていて、そのときに物質の屈折率 (IOR, Index of Refraction Values) から、それを元に Specular の値を求める必要がありました。
何の話だ、という感じですが、まぁ要するにリアルな宝石とかを作る際のシェーダーの設定に使う値です。
ということで、以下は IOR から Specular を求めるための数式です。

$$ Specular = (\frac{IOR - 1}{IOR + 1})2 / 0.08 $$

これを元に、一般的な宝石の値を当てはめていくと、下のテーブルのようになります。
※有効桁数は小数第 3 位まで

宝石 IOR Specular
アメジスト - Amethyst 1.544 0.572
琥珀 - Amber 1.546 0.575
アクアマリン - Aquamarine 1.577 0.627
エメラルド - Emerald 1.561 0.600
ラピスラズリ - Lapis Lazuli 1.610 0.683
トパーズ - Topaz 1.620 0.700
ルビー - Ruby, サファイヤ - Sapphire, ガーネット - Garnet 1.760 0.948
ダイヤモンド - Diamond 2.419 2.153

これをシェーダーに投げつけると、下のような結構リアルな宝石ができます。

といった感じで、今日のメモでした。ではではまた明日!