ここでは、ボリュームを Mantra でレンダリングする際の最適化について紹介する。
使用したビルド: Houdini 16.0.468
シーン構成
今回のレンダリングシーンは以下の要素によって構成されている
- 別シーンファイルでシミュレーションされ Alembicで出力されたボリュームキャッシュ。9回複製して(計10個) マージされている。
- ボリュームが影を落とす地面
- 環境光 x1 と前面からのポイントライト x1 の計2つのライト
- カメラ
- レンダリングの設定をしている Mantra
ボリュームジオメトリ提供: 小松 泰氏
1 |
元画像 |
レンダリング時間 |
56分55秒 |
|
Mantra ROP |
ライト |
Render Engine |
Pixel Samples |
Ray Variance Anti-Aliasing (RVAA) |
Stochastic Samples |
Lights' Sampling Quality |
Ray Tracing |
3x3 |
On |
4 |
1 |
ほぼデフォルトの元の設定。57分のレンダリングは非常に遅い。 |
2 |
Mantra ROP の Rendering タブ以下の Sampling タブにある RVAA をオフにする |
レンダリング時間 |
10分41秒 (19%) |
|
Mantra ROP |
ライト |
Render Engine |
Pixel Samples |
RVAA |
Stochastic Samples |
Lights' Sampling Quality |
Ray Tracing |
3x3 |
OFF |
4 |
1 |
RVAAをオフにしたことでレンダリング時間は元の約1/5。しかしながら、画像下の方の暗い部分を中心にノイズが多くなった。 |
3 |
Pixel Samples を 1x1 に |
レンダリング時間 |
1分20秒 (2%) |
|
Mantra ROP |
ライト |
Render Engine |
Pixel Samples |
RVAA |
Stochastic Samples |
Lights' Sampling Quality |
Ray Tracing |
1x1 |
OFF |
4 |
1 |
ピクセルサンプルを 1x1 にしてみると、レンダリングは1分ちょっとで終わるが、予想通り、ノイズが全体にかかる。 |
4 |
ライトの Sample Quality を 4 に |
レンダリング時間 |
04分19秒 (8%) |
|
Mantra ROP |
ライト |
Render Engine |
Pixel Samples |
RVAA |
Stochastic Samples |
Lights' Sampling Quality |
Ray Tracing |
1x1 |
OFF |
4 |
4 |
ピクセルサンプルの値をそのままにライト (2つあり) のサンプル精度をどちらも 4 にする。これにより、ノイズは一つ前 (#3) よりも減るが、#2 よりきれいにはならない。それでもレンダリング時間は元画像の8%。 |
5 |
Ray Racing to PBR |
レンダリング時間 |
04分26秒 (8%) |
|
Mantra ROP |
ライト |
Render Engine |
Pixel Samples |
RVAA |
Stochastic Samples |
Lights' Sampling Quality |
PBR |
1x1 |
OFF |
4 |
4 |
Render Engine を Ray Racing から PBR に変更。かかる時間も画質もほぼまったく変わらない。 |
6 |
Pixel Samples to 2x2 |
レンダリング時間 |
16分22秒 (29%) |
|
Mantra ROP |
ライト |
Render Engine |
Pixel Samples |
RVAA |
Stochastic Samples |
Lights' Sampling Quality |
PBR |
2x2 |
OFF |
4 |
4 |
Pixel Samples を 2x2 に増加. 全体的なノイズは減ったが、ピクセルサンプルが低いと雲全体が暗く見える。ピクセルサンプルは変更しない方が良いかもしれない。 |
7 |
Pixel Samples back to 3x3 |
レンダリング時間 |
36分16秒 (64%) |
|
Mantra ROP |
ライト |
Render Engine |
Pixel Samples |
RVAA |
Stochastic Samples |
Lights' Sampling Quality |
PBR |
3x3 |
OFF |
4 |
4 |
Pixel Samples を 3x3 に戻す。レンダリング精度は #1 とほぼ同じで時間は約64%。 |
8 |
Stochastic Samples 8 |
レンダリング時間 |
1 hour 3分26秒 (111%) |
|
Mantra ROP |
ライト |
Render Engine |
Pixel Samples |
RVAA |
Stochastic Samples |
Lights' Sampling Quality |
PBR |
3x3 |
OFF |
8 |
4 |
Stochastic Samples を8 まであげた。ノイズは減ったが、8 では元画像より 10% 遅くなった。 |
9 |
Stochastic Samples 16 |
レンダリング時間 |
1 hour 42分16秒 (179%) |
|
Mantra ROP |
ライト |
Render Engine |
Pixel Samples |
RVAA |
Stochastic Samples |
Lights' Sampling Quality |
PBR |
3x3 |
OFF |
16 |
4 |
Stochastic Samples を 16 まで増強。ノイズは殆どわからないが、レンダリング時間は元の2倍弱。 |
Summary
- レンダリングの時間と精度を考慮する上で気をつける場所が3箇所ある。それらは:
- ROP ノード
- ライト
- シェーダ/マテリアル、これに関しては今回待ってく触れていない。ただし、使用しているシェーダで View->VEX code を実行すると、このシェーダは PBR をしていることがわかる。
- ライトの Sampling Quality をあげるとレンダリングの精度も上がる。これは見落としがち。
- ボリュームデータをレンダリングする場合で時間を気にするのであれば、"Ray Variance Anti-Aliasing" はオフにした方が良い。テスト#1 (元画像、 RVAA はオン) とテスト#7 (RBAA オフでライトのSample Quality は4) とではほぼ同じ画質だが、テスト#7は、テスト#1の64%の時間で終了。
- (Mantra の) PBR と Ray tracing では、レンダリングの画質もレンダリング時間もほぼ同じ。
テスト環境
- Houdini 16.0.463
- Cent OS 6.7
- 12 Core i7 @ 3.20GHz
- 32GB RAM
Nvidia Optix Denoiser
Great information share. Just learning Houdini but felt mantra is slow compared to vray while rendering volume. Vray volumegrid is much faster.
返信削除Thanks.