Maya2017 Arnoldへの疑問 厚みが無いオブジェクトの屈折表現

どうも! Maya太郎です。

今回は、以前からArnoldレンダラーに関して
疑問に思っていたことに対する自己解決を試みたお話です。
内容には勘違いや間違いがある可能性があります。
与太話としてお読みください。(後日修正があるかもしれません)


ガラスの質感設定

球体オブジェクトにAi Standardシェーダーを設定し
マテリアル設定のプリセットからAi_Glassを適用します。
ガラスの質感のプリセットが、これで簡単に設定できます。

レンダリングすると
このようにガラスの質感が簡単に再現されるわけですが…
中身が詰まったガラス玉の様な表現になります。

過去記事でも同じような作例を紹介しましたが、下図右側のシャボン玉風の表現をするためには…

「押し出し」や「ブーリアン演算」を使って形状に厚みを付けて「薄膜」表現をしていました。 

確かにこの方法で、中空のガラスオブジェクトの表現はできるのですが、
他のレンダラーではワンボタンでレンダリング時のみ「厚み処理」してくれるモノがあったような気がするのです。
Arnoldでそれが出来ないものかといろいろ探してみたのですが見つからないのです。
(もしどこかに該当する機能があったらすみません。)

ということで今回は
モデリングで中空化処理をすること無く
球状オブジェクト(プリミティブ状態)のまま
中空ガラス球の表現が出来ないものか試したお話です。

 


物理的な質感設定は無視する

ズバリ!
今回は、物理特性を無視して、屈折率を0.97にしてみました。
(何度も試行錯誤した最適値です)

 

どうして0.97なのか…
なぜなら下図のように参照できるサンプルを並べながら見た目だけで調整したからです。
0.98でも0.96でも自由に調整してOKです。

厚みが無いので、透けすぎてる感じがします…

気になる場合は、Reflection(反射)の数値を若干上げます。

周辺の反射が映り込むので、ほとんど差が気にならなくなりました。

この方法は、あくまでも簡易的な表現を目指したものなので
正確な演算結果を求める場合にはお勧めできません。

この場合の利点はモデリングの手間を省くことだけでなく
Ray DepthのRefraction(屈折)の数値を上げなくてもレンダリングできるということです。
(レンダリング時間も若干速くなります)

【補足】ガラスオブジェクトに厚みがあった場合は
Ray DepthのRefraction(屈折)の数値を最低でも4に上げる必要があります。

 

この方法は思いつきでやってみた「邪道」的な方法ですので
おススメできませんが、雰囲気でガラス表現できればいいというような軽い用途では使えるかもしれません。

ということで「実験やってみました!」的なお話でした。

では!