« カメラと三脚 | トップページ | Realityでテレビを表現する »

Reality1.25とMatteTranslucent

Flag1

Realityプラグインがバージョンアップされて1.25になりました。今回のバージョンアップは主にバグ修正ですが、MicroFacetのDisplacementが新たにサポートされました。もともとLuxRenderのDisplacementはポリゴンを再分割(Subdivide)してやることが前提であったため、細かい凹凸はBumpを使うしかなかったのですが、MicroFacetのおかげでSubdivideを500とかに設定できるようになりました。

それはそれとして、気になっていたのがMatteTrancelucentマテリアルのエクスポート処理です。いわゆる半透明のマテリアルで、布なんかをこれで光が透過するように設定してやると、とてもリアルな布に見えるのです。ところが、RealityはTranslucent Color(透過する光)にはテクスチャを指定できるのですが、困ったことにReflection Color(布の表面で拡散する光)にテクスチャを指定できないのです。

Flag2 つまり、普通にマテリアルをMatteTranslucentに指定してやると、こんなふうに表面が単一色で塗られてしまうわけです。これではテクスチャを貼ってある服なんかに使うことはできません。なんでこんな単純な問題を放置してるんだろ。(;´Д`)

以前に作者のフォーラムで問題を指摘したのですが、どうやら言葉の壁が思ったより厚かったようで、理解してもらえなかったようです。それならば・・・と、修正スクリプトを作って再度フォーラムに書き込んできました。


このスクリプトを使うことで、Reflection Colorにテクスチャを自動で指定してくれます。使い方は、まずRealityのダイアログの下のほうにある、「Export only」にチェックを入れて出力します。次にこのTranslucentFixerスクリプトを起動し、FilenameにRealityが出力したlxmファイルを指定してAcceptを押すだけです。あとはLuxRenderを起動してLuxRenderのシーンファイル(.lxs)を読み込めばレンダリングが開始されます。

ダウンロードはこちら。(SkyDrive)


Rr_matte通常のMatte指定だと、こんなふうにレンダリングされます。アルファチャンネルを指定した部分は一応透過するのですが、影が全体的に暗くなっていて、布という感じがしません。


Rr_mattetrans これをMatteTranslucentに指定して普通にレンダリングすると、テクスチャが真っ白に飛んでしまいます。。・゚・(ノД`)・゚・。


Rr_mattetrans2 TranslucentFixerを使ってlxmファイルを修正してやることで、テクスチャが正しく描かれるようになります。布に染み込む光もきちんとレンダリングされるので、まさに布という感じがします。


Rr_mattetrans3Reflection Colorの明度を下げてやると透過する光の割合が大きくなるため、こんなふうにスケスケになります。濡れた服なんかを表現するのにも使えるかも知れませんね。(´∀`*)


GlossyにあるTranslucencyも同様の問題を含んでいます。Realityの作者はTranslucentを使ったことないんじゃないでしょうかね。実装が中途半端すぎます。(;´Д`) MatteTranslucentはこの方法で解決するとしても、GlossyのTranslucent指定は複合マテリアルなので、一筋縄ではいきません。LuxRender0.8RC1からGlossyTranslicentタイプが新規にサポートされているので、これにReality側が対応してくれれば何とかできるかも知れません。とにかくバグ報告はしておいたので、今はなりゆきを見守るだけです。(´・ω・`)

2011/05/01追記: 次のバージョンでReflection Colorにもテクスチャを設定できるようにしてくれるそうです。作者は納得いかない様子でしたが、根負けしたんでしょうね。(;´∀`)

|

« カメラと三脚 | トップページ | Realityでテレビを表現する »

DAZ Studio Tips」カテゴリの記事

コメント

おおっ!
ちゃんとこういう表現に使えるマテリアルだったんですね!RealityからしかLux Renderを使ったことが無いので、半ばあきらめていました。。

スクリプト正常に動作しました。このスクリプトは、すべてのMatte TranslucentマテリアルのTranslucent Colorに張られたテクスチャをReflection Colorにも張ってくれるものということでいいのでしょうか?
個人的な興味ですが、そこからTranslucent Colorのテクスチャを剥がすとどう変わるのかも見てみたいです。

私も以前作者のフォーラムで不具合報告をしたことがあるのですが、なかなか意図が伝わらなくて難儀しました。結局報告だけして、それ以来訪問してないのです。

投稿: Kotozone | 2011年5月 1日 (日) 20時41分

Kotozoneさん、コメントありがとうございます。
LuxRenderはもっといろいろな表現が出来るんですよ。でもRealityでは実装してくれないんです。代表的なものが複合マテリアルで、これをRealityから指定できるだけでもかなり違うのですが・・・。

このTranslucentの問題をお願いする過程でわかったことは、作者は意外にもLuxRenderや3DCGに関する理解が浅いということです。過去にもこの問題は指摘しているのですが、まったく的外れな回答が帰ってきました。その理由と必要性を細かく説明しないとわかってくれません。しかも英語で。(;´Д`)

私としては高価なプラグインを購入した以上、せめてエクスポーターとして使い物になるレベルまでは頻繁にアップデートを続けて欲しいのですが、なにぶん作者があの調子ですので、それならば・・・とスクリプトを作成してみたわけです。

このスクリプトは、おっしゃるとおりTransmission Colorのテクスチャと同じものをReflection Colorにも設定するだけのものです。Translucent Colorのテクスチャをはがすとどうなるんでしょうね。まぁlxmを少しいじれば簡単にできるので、あとで試してみることにします。(´∀`*)

投稿: とうふ | 2011年5月 1日 (日) 22時21分

コメントを書く



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




« カメラと三脚 | トップページ | Realityでテレビを表現する »