« 勢いよく噴出する流体 | トップページ | DAZ Studio 4.6.0.81Beta公開 »

リアルなガラス

Lucy7

このところ、ずっとガラスの質感を表現するためのシェーダーをShaderMixerで作成しておりました。ガラスを通過する光というのは減衰するわけですが、標準シェーダーでガラスを作ると厚みにかかわらず一定の色にしかできません。完全透明なガラスであればこれでも特に問題ないのですが、色のついたガラスなどは違和感が出てしまいます。

そこで、ガラスの内部を通過する光のベクトルを計算する部分において、ランベルト・ベールの法則を用いた減衰計算を行うことで、厚みによって透明度が異なる質感を表現することにしました。(Wikipediaのページを見ると難しい数式が並んでいますが、近似式を使うので簡単です。)

媒質を通過した光の色は、RGBの各成分に対してexp(-abs*dist)で簡単に求められます。absは吸収率、distは通過した距離を表しています。ここの式で得られた値をレイトレースで計算した色の各成分に乗算することで、媒質を通過した後の色となります。

苦労したのは3Delight特有の計算方法がなかなか理解できなかったことで、何度も壁にぶつかりながら試行錯誤の繰り返しでした。その甲斐あって、3Delightとは何をするものか、なんとなく理解できた気がします。

このシェーダーはShareCGにアップしてありますので、よろしければご利用ください。改良なども大歓迎です。ヽ(´ー`)ノ

|

« 勢いよく噴出する流体 | トップページ | DAZ Studio 4.6.0.81Beta公開 »

DAZ Studio Tips」カテゴリの記事

コメント

 早速使わせて頂いております。
ありがとうございました。

 私にとっての3DLightの最大の謎は被写界深度を設定しても、レンダリングの速度があまり変わらない点で、昔は結構遅くなったような記憶があるんですが・・・私の記憶もあまりあてになりません(w
 
 被写界深度を設定するとたまにモデルのポリゴンメッシュが浮き上がってきたりします。ShadowBiasとかいじっても治る気配がないし、DS4.6で結構内部の演算方法が変更されたんでしょうかねぇ・・・私の環境ではどう設定しても水平方向にしかレンダリングしてくれませんし(^^;

 後、LuxRenderでSkydomeが使えず悩んでいたのですが、こちらの掲示板が非常に参考になりました。重ねてお礼申し上げます。

投稿: Cyawcat | 2013年8月 3日 (土) 16時06分

Cyawcatさん、コメントありがとうございます。
ポリゴンメッシュが浮かび上がる問題は、主にシェーダー側に原因があるようです。今回のガラスシェーダーを作る過程でも、この問題の原因を探るために1週間ほど悩みました。(笑)

SmoothがONになっているモデルはシェーダーと実ポリゴンで法線の向きが異なります。3Delightではバイアスを設定して擬似的にシェーダー表面を前(または後)にずらすことで解決しているのですが、このバイアス値は絶対値なので、密度の高く滑らかで小さなポリゴンモデルでは小さく、ローポリモデルでは大きく設定しないとメッシュが浮かび上がってしまいます。

私が把握しているものでバイアスが影響するのは、Shadow、Reflection、Refractionの3つです。他にもあるかも知れません。上記のように実ポリゴンの状態に応じて適切なバイアス値を設定しなければならないのですが、残念ながらほとんどのシェーダーはバイアス値を固定としてしまっている状況です。ShaderMixerを使って自分で組むほうが早いかも知れないですね。(;´▽`A``

LuxRenderDSの掲示板ですが、フィッシングサイトへ誘導する悪質なスパム等の書き込みが増えてきたため、公開中止しております。ご迷惑をおかけして申し訳ありません。。・゚・(ノ∀`)・゚・。

投稿: とうふ | 2013年8月 3日 (土) 16時39分

 スパムは本当に勘弁してほしいですよねぇ・・・

 ポリゴンメッシュの浮き上がりはシェーダー側の問題でしたか。メタル素材などの反射面が格子模様になるのも、ReflectionのBiasがあっていないということなんですね。参考になりました。ありがとうございます。

P.S.滅多に更新しないブログにリンクして頂まして、ありがとうございます。
事後報告ですが、こちらでもとうふさんのサイトにリンクさせて頂ましたので、よろしくお願いいたします。

投稿: Cyawcat | 2013年8月 3日 (土) 22時41分

ダウンロードさせていただきました。
ありがとうございます。

投稿: 甘利純 | 2013年8月 4日 (日) 09時10分

Cyawcatさん、こちらこそどうぞよろしくお願いいたします。(´∀`*)

投稿: とうふ | 2013年8月 4日 (日) 20時49分

甘利純さん、コメントありがとうございます。
地味なシェーダーですが、どうぞ使ってやってください。(;´▽`A``

投稿: とうふ | 2013年8月 4日 (日) 20時50分

コメントを書く



(ウェブ上には掲載しません)




« 勢いよく噴出する流体 | トップページ | DAZ Studio 4.6.0.81Beta公開 »