
ガラスや宝石の色味が、屈折した光の分散によってカラフルに色付く表現の作り方を紹介する。
Blenderのチュートリアルでよく見るRGB分離手法だと、屈折がそのままRGBに分離したように見えてしまう。
今回紹介する方法では比較的自然に見えるようになる。
宝石用語では輝きをファイアというらしい。
もくじ
参考
作り方

細かな点をオブジェクトの表面に撒き、カラースペクトルのような色で色付けし、その点ごとにIOR値のズレをマッピングする。
これにより、比較的自然なプリズムを付けることができる。
ダイヤ形状のメッシュを作成

- 設定 > エクステンションを入手 > Extra Mesh Objectsを検索し、インストールする。
- 3Dビュー > 追加(Shift+A) > メッシュ > Gemstones > Brilliantを作成する。
- 実行後の設定から、Girdleを0.03程度にするといいかも。
基本シェーダー
- 屈折BSDFと光沢BSDFを、シェーダーミックスで合成する。
- 係数にはフレネルを接続する。
ホワイトノイズ
- ホワイトノイズテクスチャを作成する。
- 細かな点をオブジェクトの表面に撒く。
- 非常に微細なので全体は白く見える。
- テクスチャ座標を作成し、ホワイトノイズに接続する。
- ホワイトノイズに、カラーランプを接続する。
- カラースペクトル風の色に割り当てる。
- 黒、青、緑、赤、黒の順番。
- 青/緑/赤のRGB値は、それぞれ1.82484の数値を付ける。
(RGBには1.0以上の値も設定することができる)
- ホワイトノイズに、RGBカーブを接続する。
- カラースペクトルは青ほど太く、赤ほど細くなるので、それを再現するようにカーブを付ける。
- ノードの幅を、カラーランプのと同じくらいの幅に伸ばすと設定しやすい。
IOR
- 値ノードを作成し、これをIORとして値を設定する。
- ダイヤなら2.4168。
- 値ノードを、フレネルのIORの値にも接続する。
- 値ノードに数式ノードを設定する。
- [加算]にし、0.2程度の値を設定する。
- これが虹色の反射の幅となる。
- RGBカーブに、範囲マッピングを接続する。
- これにより、ホワイトノイズの粒の範囲(0.0~1.0)を、IOR~プリズムの幅の範囲(1.45~1.46のような)にマッピングする。

その他
RGB分離手法

屈折表現については外部レンダラーの方が優秀
Cycles RenderよりもvrayやLuxCore Renderなどの方が楽に質の良い結果を得られる模様。