2010年10月24日日曜日

【CG】PathTracingとGshader(仮) part2

さてさて、最近はPPIの仕事も在宅での仕事もなかなか充実してて、ブログを更新する時間がありませんが、休日を利用して久しぶりの更新です。

本日は前回紹介した友人と一緒に開発しているgShaderについての続報です。
前回のエントリでも紹介しましたがgshaderのコンセプトは誰でも簡単フォトリアル!
とにかくシンプルに誰でも簡単に使いこなせるように現在も色々と改良中です。
MentalRayの小難しい設定は一切不要!
(くどいようですがshaderの開発はRyu一人で行ってます。僕は検証とバグ報告しかしてないです。僕の開発力ゼロなんで(^^:)

前回から色々とバグもFIXされてベースになるgMaterialはほぼβ版としては完成ですかね?
gGlassMaterialっていう、透明物体専用のshaderはまだ仕様が少し固まってませんが、近々FIXさせたいですね~。

今回紹介するのはそんなgShader専用のインターフェースを紹介したいと思います。
まずは基本になるgMaterialの紹介です。gMaterialはgshaderの一番基本になるShaderで
鉄や木、ゴム、布、プラスチックなどを表現できます。透明物体やSSSを必要としない物体が表現可能です。
(透明物体はgGlassMaterialで表現できますが、SSSはプロ版ですかね?)
具体的な使い方は後々ブログで紹介するとして、今回はインターフェースのみの紹介です。





マップの差込口はDiffuse、Reflection、ReflectionGlossy、Bumpのみの4つだけです。
後は伝導体か非伝導体かの設定をするIndax of Reflectionの設定のみです。
Gummaやsample回数など、ややこしい設定は全てshader内で自動化。ユーザーはカッコいいモデルとテクスチャーを用意するだけです!!!

次は透明体を表現するためのgGlassMaterialの紹介です。まだ、仕様が完全に固まってませんが、概ねテストは完了しています。



Mapの差込口は計5つです。Trancparency、TorancparencyColor、Reflection、ReflectionGlossy、、Bumpです。後はReflactionのOn/OffとIORの設定のみです。
Trancparency、TorancparencyColorの仕様をまだ決めかねてます。本当は一つが理想なんですが、色々と問題もあり、現状は二つの差込口があります。

次はgEnvironmentの紹介です。これはgshader専用の環境マップを設定するShaderです。
MentalRayのIBLと同じ働きですが、これはgShader専用のIBLっと言った感じでしょうか?



基本的にはMapのところにHDRIや8ビットの環境マップを指すだけです。Intensityで環境全体の明るさをコントロールします。
Rotateで環境を回転させて、光の方向をコントロールできます。また、Connect To mentalray IBLでmentalRayのIBLのRotateと自動でコネクトして、gEnvriomentShaderの環境Mapを視覚的に確認する事が出来ます。

次はglensShaderの紹介です。これはgshader専用のLensShaderでレンダリング時のSampleLevelやGumma値のコントロールをします。
(Pro版ではISOやShutterSpeedや露出などを追加して、本物のカメラのような設定にする予定は未定です。本当に未定ですw)



大まかに必要なshaderはこの4つだけです。Pro版はでは更にgLight(専用のLightShaderも追加予定は未定)です。

そして、これらのshaderとRenderGlobalを一括コントロールするためのUI、G-Shader Global Controlも付属させました。



インターフェースデザイン、内部構造すべてGSGC(G-Shader Globle Control)に関してはesk作です。設定可能パラメーターは随時追加予定ですが、現状は必要最低限のパラメーターのみです。
基本的にはPresetsが用意されていて、Previw、Low、Midium、Production、DOFの5つのpresetsが選択可能です。もちろんカスタムでも設定可能です。
Sample、Multi-Pixel-Filter、Reflection、Refraction、Max Trace DepthはRenderSettingと連動していて、基本的にはG-Shader Global Controlで設定できます。
(今後はFramBuffer、RenderSizeのパラメーターを追加予定は未定。出力フォーマットとかも選べると便利かもですね。今後の仕様を次第ですね。)

Create gEnvironmentとCreate gLensでそれぞれのshaderを自動生成。Cameraを選択することで
自動的に選択されたCameraのMentalRayTabのEnvironmentShaderとLensShaderに接続されます。
とにかくシンプル!簡単に!!!MentalRayの小難しい設定は一切必要なし!finagatherOFF、importonOFF、photonOFF!

RelrectionやRefractionのsample回数も一切制限無し!2回とか3回とかけち臭い事言わずに100回でも200回でも設定しておけば、後はShaderが自動で計算してくれます!

ま~~、簡単シンプル設計ゆえに色々と問題も出てくるのですが、それらの問題はpro版で?
現状の問題としては、全てがMaya内で完結してしまうので、ワークフロー、パイプラインに乗せるのが少し難しいですね。リニアフロー、リニアレンダリングも全部maya内で完結しちゃってるんで。
その辺の解決策もすでに準備されてるんで、Pro版に期待ですね!
あとは閉鎖空間(屋内でのレンダリング)に問題があるので、今後改善していかないといけないですかね?

前回から色々とバグFIXしたgshaderのsample画像です。色付きガラスは少し彩度つよすぎましたね(^^;








概ねバグがFIXしたので、そろそろ裾野を広げて、何人かの人に実際に使用してもらう予定です。
そして、今後はgshaderを使って作った作品なんかも紹介できれば良いかなっと思ってます。
そろそろPro版の検証もしていかないといけないですしね!今後のgshaderに期待しましょ~!(開発予定は未定ですが。
(えらそうに説明してますが、開発者はRyuさんです。くどいですが、僕は検証とバグ報告しかしてないです。僕の開発力ゼロなんで!ほんとRyuさん凄い!。


追記:Sample画像のLight設定ミスしました。LightShadowDepthの設定が1になってた。。。。開発者自らの突っ込みがあった(笑
どうりでDiffuseBounceが強いし、映り込んだ板に影が落ちてない訳だ。。。。
次回のエントリではもっとカッコいい絵が公開できるように頑張ります。

2 件のコメント:

  1. いつも、ブログを読んで勉強させて頂いてます。 

    gshader!話を聞いてるだけでワクワクしてきます♪

    それと、先日 ガフールの伝説、観にいきました。

    いつまでも観ていたい美しい映像でした。

    僕もいつか自分が感動できる作品に関われる日が来れば良いなと思います。

    返信削除
  2. >まあ★さん
    gShader!僕自身がワクワクしてます。検証、テスト共に良好です。
    近々、画像とか公開できればいいかな~~。

    >ガフール
    ありがとうございます。映像美に関しては、本当に評価いただいてます。
    CG屋としては嬉しい限りですね!

    返信削除