ここでは Houdini 17 に搭載された Light Pass Expression (LPE) について説明する。LPE は、OSL Light Pass Expressions を元にした正規表現による AOV 設定の一種で、これを使うことでより柔軟なレンダーパスをの作成が可能になる。
この記事は、Houdini Apprentice Advent Calendar 2018 の 12/22 の記事になりました :)
使用したビルド: Houdini 17.0.430
1. シーン構成
このシーンは、前景と背景のオブジェクト二つ、ライト3つとカメラで構成されている。
- 前景: Pig head (testgeometry_pighead_object1)
- Houdini 付属のテストオブジェクト。fg とタグしてある。
- 背景: cornellbox1
- 立方体の正面を取り除いて法線を反転した HDA。入力で
0: Cornellbox、
1: 白黒タイルテクスチャ、
2: Cornell Box+床カラーテクスチャ
と切り替えることが可能。
向かって左側が greenwall, 右側が redwall, 中央部分(天井と床含む) に centerwall とタグされている。 - ライト1: key: 赤みがかった Directional Light。key とタグ
- ライト2: fill: 緑がかった Directional Light。fill とタグ
- ライト3: envlight: 青味がかった環境ライト。envl とタグ(lが付いていることに注意)
- カメラ: レンダリング用カメラ
- Mantra ROP: /out 以下にあるレンダリング設定ノード
2. LPE 設定
- エクスプレッションの設定
- タグの設定
3. LPE 実践
LPE に関する詳細は、Houdini のドキュメント、または OSL Light Pass Expressions を見たり、プリセットを一つずつやってみるのが良い。ここでは、いくつかの例を紹介する。
ここでは、時間の都合上、Pixel Sample は 1x1、Optix デノイザを使って、Render View でレンダリングした。
なお、VEX Variable に LPE を入力して様々なテストを行う場合には、Channel name に何か固定名 (例: test) を与えておくと、同じパス名が使われるので、RenderView で比較が易しくなる。
上記のようにChannel Name に test と与えると、Render View のパス名の部分(左端をクリックして表示) で、エクスプレッションを変更したとしても、常に test として表示される。
- lpe:C'fg'.*
fg のみ、ライト成分全部 - lpe:C'fg'['key'] // よくありがちな間違い
fg のみ、key ライト Diffuse のみ。反射成分が無い。 - lpe:C'fg'.*['key']
fg のみ、key ライト成分全部 - lpe:C'fg'.*['fill']
fg のみ、fill ライト成分全部 - lpe:C'fg'.*['envl']
fg のみ、環境ライト成分全部
LPE に関して
LPE に関する詳細を書き出すと、ここまで書いた時間の3倍以上の時間が必要になると思うが、LPE は、基本的には、レンダリング時の光線の軌跡を カメラ > ボリューム(オブジェクト) > サーフェス(オブジェクト) > ライト の順に辿って行くための正規表現。プリセットでは以下が用意されている。
LPE | Expression |
Beauty | lpe:C.* |
Direct Diffuse | lpe:C<RD>L |
Indirect Diffuse | lpe:C<RD>.+L |
Direct Glossy Reflection | lpe:C<RG>L |
Indirect Glossy Relfection | lpe:C<RG>.+L |
Glossy Transmission | lpe:C<TG>.* |
Visible Lights | lpe:CL |
Direct Emission | lpe:CO |
Indirect Emission | lpe:C.+O |
Direct Volume | lpe:CVL |
Indirect Volume | lpe:CV.+L |
BSDF labled 'coat' | lpe:C<...'coat'>.* |
BSDF labled 'sss' | lpe:C<...'sss'>.* |
シーンファイル
- ftp://ftp.sidefx.com/public/sidefxjp/web/h17_lpe.zip (195KB)
- ktaki_cornellbox.hda: ~/houdini17.0/otls などOTL ディレクトリに配置。
- lpe2.hip: このシーンファイル
0 件のコメント:
コメントを投稿