NVIDIA Irayレンダラー その8:キャンバスを分けたレンダリング

Category : Iray Renderer
DAZ Studio 4.8 Proのベータ版が公開された初期から、私がずっと気になっていたIrayの機能があります。それは「Light Path Expression」というもので、ざっくり言ってしまうといわゆるマルチパスレンダリングのことです。
マルチパスレンダリングをすると、ディフューズ、スペキュラ、リフレクションなどの要素別にレンダリング画像を出力することができるにはもちろん、加えて深度(Depth)やノーマル(Normal)情報なども出力することができます。また、ライト別、オブジェクト別にレンダリングすることも可能です。

DAZ Studio 4.8のIrayレンダーでは何をレンダリングするかという設定をキャンバス(Canvas)として定義します。そしてレンダリング時にキャンバスごとに画像が出力される流れになります。

また、キャンバスを定義してレンダリングすることで、HDR(ハイダイナミックレンジ)でのレンダリング出力画像(OpenEXR形式)が保存でき、それをPhotoshopなどで画像補正をしつつLDR(ローダイナミックレンジ)に落とすということもできます。

今回はそのマルチパスレンダリングを可能にするキャンバスの設定と、出力されるレンダリング画像の補正についてご紹介します。

※エミッションのみのレンダリングについて訂正しました。(2015.12.26)

Iray08 SS



■キャンバスの定義

マルチパスレンダリングをするためにはまず、Render SettingsタブのAdvancedページのCanvasesタブでキャンバスの定義をします。
Iray08 キャンバス設定1

 (1)Canvases:欄の左のボックスをクリックしてチェックを入れます。
Iray08 キャンバス設定2

 (2)その下の+ボタンをクリックすると、キャンバスが1枚追加されます。
Iray08 キャンバス設定3

 (3)そのキャンバスについて、Type欄(レンダリングする要素)をポップアップメニューから選択します。「Beauty」は全要素をレンダリングします。また、オブジェクトが無いピクセルをアルファチャンネルで抜く場合はAlphaにチェックを入れます。

 (4)他にキャンバスを追加したい場合は(2)に戻って下さい。定義したキャンバスを削除したい場合は、リストから選択して左のーボタンをクリックします。

 ●オブジェクト別にレンダリングしたい場合

ノードリストを作成することで、リストに登録したオブジェクトのみをレンダリングすることができます。

Sceneタブでレンダリングしたいオブジェクトを選択(複数選択可)しておき、(3)の工程でNodes欄を「Create From Selection」とします。続けて出現するダイアログ(ノードリスト名)でOkをクリックすればノードリストの作成と作成したノードリストの指定がされます。
Iray08 キャンバス設定 ノードリスト

他のキャンバスで同じノードリストを使いたい場合は、Nodes欄でそれを指定します。

 ●ライト別にレンダリングしたい場合

Type欄を「Light Group」にして使いたいライトを登録したノードリストをNodes欄で指定します。
IBLやサンスカイライトのみのレンダリングはType:「Environment Lighting」、エミッションのみのレンダリングはType:「Emission」になります。「Light Group」にしてエミッションが設定されているオブジェクトをNodes欄で指定します。Type:「Emission」だと光源がレンダリングされます。

 ●HDR出力できればいいという場合

Type欄を「Beauty」にします。


■マルチパスレンダリング

キャンバスの定義をすると、Render SettingsタブのEditorページにCanvasesグループ>Active Canvasプロパティが出現します。
Iray08 表示するキャンバス
・Active Canvasメインでレンダリングするキャンバスです。レンダリングウィンドウに表示されます。

この状態でレンダリングを開始すると、Active Canvasプロパティで選択されたキャンバスがレンダリングウィンドウに表示されます。
さらに、出来上がったレンダリング画像を保存する時に、同時に保存先に「<ファイル名>_canvases」というフォルダが作成され、その中に各キャンバスのレンダリング画像がHDRで保存されます。

Render Targetプロパティ(Generalグループ)が「Direct To File」の場合は、直接各キャンバスがファイルとして保存されます。

Irayのサンプルシーンをキャンバスを分けてレンダリングしたのが下の画像です。
※4枚のレンダリング画像を連結してあります。
Iray08 レンダリング mballマルチ


■マルチパスレンダリング画像の合成

「<ファイル名>_canvases」フォルダに保存された各キャンバスのレンダリング画像は、Photoshopなどのレイヤーと32bit/chが扱えるフォトレタッチソフトなどで合成します。

32bit/ch画像の扱えないフォトレタッチソフトを使う場合は先に「Luminance HDR」などのソフトを使ってHDR出力されたレンダリング画像をLDRに落とし、png形式やjpg形式で保存しておきます。
そしてレイヤーの扱えるフォトレタッチソフトに読み込んで、加算(Photoshopの場合は「描画モード:覆い焼き(リニア)- 加算」)で重ねます。
Iray08 レイヤー合成

Photoshopを使う場合32bit/ch画像のままレイヤー合成ができますので、そのまま重ねて露光量調整レイヤーなどでレイヤーごとの露出を調節し、最後に画像を統合後イメージ>モード>8bit/チャンネルを実行して(「露光量とガンマ」を初期値のまま適用)LDRに落とします。

特にPhotoshop CCを使ってHDR->LDRを行う場合にオススメしたいのは、ダイナミックレンジの詳細な調整や他の画像補正も同時にできる「Camera Rawフィルター」です。これはRAW現像プラグイン「Camera Raw」をフィルター化したもので、画像形式やビット深度に関係なく使えるようになった優れものの写真補正フィルターです。

例えば、次のようなシーンでは露出をどうしようか迷うところです。
明るい部分に露出を合わせようとするとアングルのほとんどが暗くなってしまいます。
Iray08 レンダリング 回転木馬ローキー

かと言って暗い部分に露出を合わせようとすると明るい部分はほとんど白とびしてしまいます。
Iray08 レンダリング 回転木馬ハイキー

トーンマッピングの設定である程度軽減することはできるでしょうが、それだけではなかなか調整が難しいです。
そこでHDR出力されたレンダリング画像を「Camera Rawフィルター」で処理すれば、白とびを抑えつつ暗い部分を持ち上げるということが慣れた色調補正の操作で簡単にできます。
Iray08 レンダリング 回転木馬ダイナミックレンジ調整後
Iray08 Camera Raw フィルター

コツは、事前に色調補正>露光量でおおまかに露出を補正(-14~-10)しておいてから「Camera Rawフィルター」フィルターを適用することです。


■Light Path Expression

ここまでご紹介してきたまでの内容でマルチパスレンダリングでやりたいことのほとんどはできますが、複数の要素を混ぜたキャンバスを定義したいという場合はLight Path Expression(LPE)を使います(おそらくこれまでの内容もIrayレンダラーにはLPEとして渡されていると思われます)。
LPEは正規表現でキャンバスを定義するためのルールで、Type:LPEにすると出現するExpression欄にLPEを書くことで使用できます。

例えば全要素をレンダリングするLPE(Type:Beautyに相当)はこれです。
 L.*E

特定のライト(例:light_left)だけを使って特定のオブジェクト(例:tube)の特定の要素(例:Specular)をレンダリングするLPEはこうなります。
 <L'light_left'>.*<RS'tube'>E
※オブジェクト名、ライト名はSceneタブに表示されるものでOKです。

Expression欄に入力するとき、日本語環境のせいなのか文字送りが逆になってしまってまともに文字が打てませんので、テキストエディタなどで入力した文字列をコピー&ペーストして下さい。

詳しいルールはIray Programmer's Manualのこのページ周辺をご参照ください。


■不具合など

まだ実装が完全ではないのか、正常にレンダリングできない場合があります。
私が確認したところでは次の条件だとダメでした。

 ・フォトリアルモードでサンスカイライトを使わないでレンダリングする

例えばフォトリアルモードでIBLだけだと何かが足りないレンダリング画像となってしまいます。とっても不思議ですが。
※この不具合はバージョン4.8.0.59で修正されました。

暫定的な解決法として、次のようなものを考えてみました。
シーンライトのみでレンダリングする場合は、Environment Modeプロパティを「Dome and Scene」にし、Environment Mapプロパティを「None」にすることでサンスカイライトとシーンライトとのライティングにします。そしてキャンバスをType:Light Groupにしてノードリストをシーンライトのみで指定すれば、フォトリアルモードでもシーンライトのみの正常なレンダリングができるかもしれません。

IBLとディスタントライトの組み合わせでType:Environment Lightingでもいけそうな気もします。



今回の素材はこちら

Carnival Carousel



テーマ : 3DCG
ジャンル : コンピュータ

Comment

No title

すげーすげーすげーーーっ。 フォーラムで質問するのがさすがに馬鹿らしくなるような充実ぶりですっ(笑) Decal Nodeを調べていたら、結局りここにたどりついてました(笑)

悲しいかなPCがまだ古いままなんで、irayはどうも気が進まなかったんですが、、
どうもiray一色になってきてる感じがしたので、いじりはじめました。

でも、とっとと移行したほうがようさそうですねっ、、、^^;  

マニュアル2冊目だすべきだと思いますっ(笑) 
それを英訳したら、DAZで売れるかもしれないっ!! 
(私なら間違いなく売ってますっw)

gonzouさんお褒めいただきありがとうございます。
私のブログをご覧いただき、疑問が解決したようでしたら幸いです。

私も4GBのメモリを積んだNVIDIAのグラフィックボードが欲しいんですけど、高価だったり、GTX970は評判が悪かったりと、なかなか購入のタイミングが計れないんですよね。その交換だけでレンダリング速度が上がることを考えれば、費用対効果は高いとは思うのですが。

バージョン4.8でIrayを搭載してきたので、バージョン5.0ではもっと私達を驚かせてくれるのではないかとDAZには期待しています。
非公開コメント

著書
カレンダー
04 | 2017/05 | 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
検索フォーム
プロフィール

Kotozone

Author:Kotozone
製品の取扱説明書を読むのが大好きです

FC2ブックマーク
最新記事
カテゴリ
タグリスト

DSプラグイン V4 マテリアル DSシェーダ ライト DS基本 セール Genesis IBL アニメーション タブ解説 iray LuxRender Genesis2 スクリプト ダイナミッククロス ShaderMixer セットアップ Download レタッチ トゥーン カスタマイズ SSS バージョンアップ Photoshop ウェイトマップ NGM D-Form ERC ファー Miki2 IDL M4 大気 物理シミュレーション ボリューム Terrain パーティクル カラーコレクション Genesis3 モーフセット インスタンス アナグリフ V5 カメラ ロボット RAMDisk ダイナミックヘア Hexagon GIMP 3Dプリント SLG モーションキャプチャ Python K4 Linux 日本語訳 

最新コメント
リンク
月別アーカイブ
ご意見ご感想はこちらに

名前:
メール: 
件名:
本文: 

ブロとも申請フォーム

この人とブロともになる

最新トラックバック
FC2カウンター