« Environment Sphere作成スクリプト | トップページ | AOの影を捕まえる »

ShaderMixerの屈折

Refract_00fbug

先日のD|Sのバージョンアップで、ShaderMixerにも少しブリックが追加になってますね。ConstructedのところにHelperという分類が出来ていて、File StringやらFixed Variableなんかが新たに実装されています。Fixed Variable以外はどう使うのかわかりませんけど。(;´∀`)

あと、複数のブリックをグループとして1つにまとめることが出来るようになってます。グループ化したブリックはUserブリックとしてライブラリに保存しておいて、あとで再利用することもできますし、これでかなり扱いやすくなりました。

それはさておき、ShaderMixerにはD|S3.0の頃から気になっているバグがあります。Refrect and Refractブリックを使って水のような屈折を表現しようとすると、この画像のようにおかしくなるんですよね。Refraction ColorをDAZ MaterialブリックのRefraction Colorと接続することで屈折の表現ができるはずなのですが、こんなふうに影の部分が透き通ってしまいます。今日はこれを回避する方法について書きます。

この画像を見てわかるように、透き通っている部分は影のなかでもまったく光の当たらない部分、つまり真っ黒に塗られた部分です。どうやらDAZ Materialブリックの中の処理がバグってるようなんですが、ずいぶん前にバグレポートを出しておいたにもかかわらず修正される気配がありません。ちびベルはすぐに修正してくれたのに・・・。(´・ω・`)

真っ黒の部分が透けてしまうのが原因なので、影を真っ黒でなくすれば透けません。ですのでRefraction Colorの出力にRGB=(1,1,1)を加えてやることで透けなくすることができます。

Refract_00brick

こちらはブリックの構成です。Refraction Transmissionには屈折で投影されたオブジェクトの形が出力されますので、これを利用してRGB=(1,1,1)を加える部分を作ってやります。Refraction Transmissionの出力はオブジェクトの外側が白くなっていますので、Math2で白から引いてやって白黒反転させてやります。次に、Math2の出力とRGB=(1,1,1)の積をとり、その出力をRefraction Colorに加算します。

Refract_00fixed

これをDAZ Material側のRefraction Colorに入れてやれば、黒の透けない屈折のできあがりです。それにしても、いまだに修正されないというのも困ったものですよね。私の貧弱な英語力じゃうまく伝わらなかったのかもしれないです。英語が達者な方いらっしゃいましたらバグレポート送っていただけるとうれしいです。。・゚・(ノД`)・゚・。

|

« Environment Sphere作成スクリプト | トップページ | AOの影を捕まえる »

DAZ Studio Tips」カテゴリの記事

コメント

コメントを書く



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




« Environment Sphere作成スクリプト | トップページ | AOの影を捕まえる »