今回から数回に分けて『user_ibl_env』 と『user_ibl_rect』の二つのノードにスポットを当ててみようと思います。
どちらもMaya2013で新たに追加されたノードです。
これら「user_ibl」ノードはひとことで言うと、
「FinalGatherを使わずに環境光をエミュレートするノード」でしょうか。
『user_ibl』のiblはImage Based Lightingの略だそうです。
『user_ibl_env』ノード、機能としては以前とりあげた、『mib_bent_normal_env』ノードに似てるかなと。
1回目の今回は『user_ibl_env』ノードの使い方から。
実はborndigitalさんのブログに日本語にて詳しいのが出てますので、ここではザックリと。
Step1
AreaLightを作成。サイズ、向きは関係ないので気にせずに。
Step2
Area LightのUseLightShapeをON。Typを’Custom’に変更
Step3
Step4
AreaLightのアトリビュート、mental ray -> Custom Shadersの’Light Shader’に『user_ibl_env』ノードをコネクト。ドラッグ&ドロップでOK。
Step5
『user_ibl_env』のSamplesをAreaLightのareaHiSamplesとareaLoSamplesにコネクト。
(High/Lowサンプルを同じ値にしておくのが良いらしい。異なる値だと、importance Samplingが無効になるそうな。Importance Samplingとはなんぞや?)
Step6
miDefaultOptionsノードにString Optionを追加。
(※BSDF Shader以外を使用している場合。
このBSDF Shaderとは2013で追加された、『builtin_bsdf~』マテリアルノードのことかと)
(※outLinerから選択する場合は[Display→DAG Object Only]をOFFにしておく)String Optionは以下の通り。
・Name: light relative scale
・Value: 0.318
・Type: scalar
Step7
『user_ibl_env』を環境としても使いたい場合は、CameraのEnvironment Shaderにもコネクトしておく。
これで、FinalGatherがOFFでも環境光を実現できるはず。
サンプルシーンを作ってレンダリングしてみました。
ちゃんと環境光が再現できてるっぽい。
String Option等、少々めんどくささ感じないでもないですが、ちょっとイイかもと感じました。
環境光のON/OFFがエリアライトのON/OFFで出来るようですし、使い勝手がいいですね。
フローに組み込んでみるのもイイかも。
さらなる詳細は仕事か自主制作で使ってみてからということで。その際はここに追記します。
追記:少し使ってみた感じ、どうもノイズが出やすいようにも感じます。Sample数を上げれば消えるのですが、初期設定でノイズが出やすいのはちょっと・・・と思ってしまってます。
(面倒だけど、bent_normalの方がノイズは出にくいかな?)
今回はここまで。
間違い等がありましたらご指摘を。
次回はパラメータを検証します。
Mayaは2013の英語版を使用しています。
最新のバージョンとは異なる可能性がありますのであしからず。
参考サイト
下ふたつは英語ですが分かりやすいです。
http://blog.livedoor.jp/borndigital/archives/1765118.html
http://elementalray.wordpress.com/2012/05/07/the-user_ibl-shaders-pt1/
http://forums.cgsociety.org/archive/index.php/t-1047520.html
コメント