On this page |
以下の設定に加えて、Mantraでは ボリュームレンダリング の品質に固有設定があります。 ボリューム固有の情報に関しては、ボリュームのレンダリングを参照してください。
一般的な品質設定 ¶
Mantraノードの Rendering ▸ Sampling サブタブのパラメータが、品質を上げる(またはレンダリング速度を上げるために品質を下げる)のに最も重要です。
-
Rendering ▸ Sampling ▸ Pixel Samples プロパティでは、Mantraのレンダリングで 全体的な品質の設定 をします。これは、各ピクセルをシェーディングするために発射する最低限の光線の数です。この値を、例えば、3×3から5×5に上げればレンダリングの全体的な品質が良くなります。
(このプロパティには2つの数値があり、3×3が丁度良い品質です。同時に2つの数値を上げれば、品質が良くなります。)
ピクセルサンプルの 実用的な 最大限界値は、おそらく12×12で、ディスプレイスメント付きのサーフェスでは、 非常に 細かいディテール、モーションブラー、被写界深度が計算されます。それ以外のサーフェスでは、5×5や6×6が通常では十分な値です。
-
ピクセルサンプルを画像の小さいディテールを表現するのに十分な値に設定します。次に 、 Ray Variance Antialiasing を有効にします。
これは、Mantraをループさせて、許容できるノイズレベル以下になるまで、または光線の数が Max Ray Samples になるまで、余計に光線を発射して余計にシェーディングサンプルを取得します。問題のある箇所にもっと光線を当てたい場合は、 Max Ray Samples の値を増やします。
直接または間接のレイサンプル(指定したピクセルで実行されたこのループの回数)を追加画像平面としてエクスポートすることができます。これにより、画像の遅い領域を識別することができます。
-
オブジェクトにサンプリングプロパティを追加して、 オブジェクト毎に別々のピクセル設定 をすることができます。これにより、全体的にピクセルサンプルを上げることなく、メインとなるオブジェクトや問題のあるオブジェクトに対して非常に高いレイサンプルを指定することができます。ピクセルサンプルは、オブジェクト単位基準で変更することができず、レイサンプルのみ変更ができることに注意してください。
-
Rendering ▸ Dicing ▸ Shading Quality Multiplier では、精密化する量を制御します。PBRとレイトレースでは、これは非常に詳細なジオメトリのディテールの忠実度を上げることができます。マイクロポリゴンレンダリングでは、シェーディングの解像度を上げます。
-
Mantraノードの Rendering ▸ Limits タブにあるパラメータの制限を上げることで、レイシェーダが送信できる最大数を上げることができます。これにより通常ではシェーディング品質が上がります。
Irradianceを得る(暗い領域に光を跳ね返させる)には、Indirect Lightを追加して、 Diffuse Limit の値を上げます。これによって、Diffuseのバウンスが増え、よりリアルになります。しかし、Diffuse Limitを
4
より大きく設定すると、通常では、戻り値が減少します。
PBRノイズを減らす ¶
-
PBRレンダリングは、シャドウ、反射、Irradianceなどを“自由に”生成できる一方で、確率的な本質の欠点として、 ノイズ が発生します。 均一に色が付いたサーフェスにでさえ、ピクセル間で少し色が違ってレンダリングされます。
-
低解像度のテストレンダラーに基づいてPBRノイズを判断するのを防止する。 640×400で悪く見えるノイズと同じ量は、おそらく2Kでは目立ちません。 デフォルトの Noise Level が
0.05
であることに注意してください。 アナログのフィルムの粒は、おそらく約0.08
のノイズレベルに相当します。 -
Mantraノードでは、PBRレンダリングでノイズを減らすためのコントロールが主にPixel SamplesとNoise Level( Rendering ▸ Sampling タブ)の2つあります。
-
上述の通り、Pixel Samplesは、 全体的な コントロールです。 この値を上げれば、レンダラーで 全種類の サンプルの数を増やします。 この値を上げれば、ノイズが減りますが、それを使って 精度 (ジオメトリの精度)を設定し、 Noise Level を使ってノイズレベルを指定します。
-
Noise Levelを下げると、ノイズレベルが下がります。 これは、Mantraが強制的に、バリアンスがこの値より小さくなるまで、またはMax Ray Samplesの回数に達するまで、サンプリング(光線を発射)を保持します。
これは、全体的にというよりは、“問題のある領域”でのレンダリングに時間がかかる傾向があります。 たくさんのノイズが発生する接触するシャドウのような暗い領域で役に立ちます。 しかし、ノイズレベルを下げれば、レンダリングが 遅く なります。
これは、 存在するノイズの量 に関して設定します。 “テスト”レンダリングしていれば、この値を上げることができます。 非常に高解像度のレンダリングをしていれば、ノイズは消えていきます(フィルムの粒)。 レンダーファームに夜通しでレンダリングしていれば、ノイズレベルを低くして膨大な計算をさせることができます。
-
PBRレンダリングで明るい斑点があれば、 Rendering ▸ Limits サブタブのColor Limitの値を下げてみてください。 これは、システムで許容されるライトの最大量を減らします。
-
オブジェクトにプロパティを追加(プリミティブにも追加可能)して、それらのプロパティの値をカスタマイズできることを忘れないてください。 例えば、重要なオブジェクトにだけ低いノイズレベルを設定することができます。
-
リニアカラー空間(ガンマ = 2.2、詳細)で作業することを推奨します。 これにより、ノイズが少し見えなくなります。
メモリの管理 ¶
-
Mantra Delayed LoadとAlembic Geometryなどのプロシージャルシェーダを使って、レンダリング時にプロキシジオメトリ(代用ジオメトリ)をもっと複雑なジオメトリに置換します。MantraアーカイブフォーマットやAlembicフォーマット内のフル解像度のジオメトリをレンダリングすると、Mantraは同時にジオメトリファイルの小さいパーツをDemand-Loadすることができます。
-
メモリ容量の異なるコンピュータ上でレンダリングするとき(例えば、新しいコンピュータと古いコンピュータが混在している)、ファイルサイズではなく、物理メモリの 割合 を Rendering ▸ Render ▸ Cache Limit に設定することができます。
-
マイクロポリゴンレンダリングでは、レンダラーがメモリを大量に使ってレンダリングしないように Rendering ▸ Render ▸ Tile Size プロパティをデフォルトで、低く設定しています。Houdiniはメモリを取り戻せるように、タイル間で同時にタイルをレンダリングし、タイル毎にメモリを解放しています。そのため、メモリがたくさんあれば、タイルサイズを大きくして、もっとメモリを使うようにすれば、レンダリングが速くなります(たくさんのメモリを積んだマシンで理想のパフォーマンスを出すためには、タイルサイズを計算して、タイルの数をレンダリングするスレッドの数と同じにすることができます)。これは、レイトレースやPBRではあまり効果がありません。
最適化のTips ¶
-
デフォルトでは、Houdiniは、すべてのプロセッサを使ってレンダリング時間を高速化します。すべてのプロセッサを使いたくない場合、レンダーノードの Rendering タブの Render サブタブにある Use Max Processors チェックボックスをオフにします。このオプションをオフにしたら、 Thread Count で使用するプロセッサの数を指定することができます。
-
Volume Step Rate(Mantraレンダーノードの Rendering ▸ Sampling サブタブ)を下げれば、レンダリングが高速化されますが、ボリューム内のディテールの精度を上げるMantraの能力が下がります。
-
被写界深度またはモーションブラーのどれかを使っているなら、 Motion Factor の値の変更を試みることができます。これはMantra出力ノードの Rendering タブの Dicing サブタブにあります。このパラメータは動的にシェーディング品質を制御します。被写界深度/モーションブラーのレベルに応じて、メモリを少なく、レンダリング時間が速くなるようにシェーディング品質を下げることができます。
-
マイクロポリゴンのレンダリングでは、各シェーダコールは、ボリューム内の現在のマイクロポリゴンを照らしているライトすべてをループするので、検索するライトの数を制限すれば、それに比例してレンダリング時間は短くなります。
さらに、ディープシャドウマップを利用するライトを少なくすればレンダリング時間は短くなります。ディープシャドウは奥行きを与えます。つまり、このオプションをオンにしたライトは1,2個だけ必要であり、残りのライトはシャドウを使う必要はありません。
ボリュームオブジェクトに環境ライトのアンビエントオクルージョンを使うと、ボリュームレンダリングが遅くなります。なぜなら、アンビエントオクルージョンをレイトレースすることで、シェーディングされる各マイクロポリゴンには恐ろしいほどたくさんの光線が発生します。手動でライトを制御すればもっと負担を減らすことができます。
-
レンダリングするシーンの一部のみに影響を与えるライトに対して、ライトオブジェクトの Active Radius パラメータを有効にして、ライトの影響範囲の最大半径を設定することでレンダリングを速くすることが可能です。シェーダを有効半径より外側で実行すると、シェーダは、その光源を完全に無視するのでレンダリングパフォーマンスがよくなります。このオプションは小さい光源がたくさんあるシーン、例えばたくさん街灯が並んでいるようなシーンには特に役に立ちます。
-
ある程度の透明度を持つジオメトリをレンダリングする時、不透明度を制限することで、現在の光線が不透明度の閾値を超えると止めることができます。 Opacity Limit パラメータは、Mantra出力ノードの Rendering タブの Limits サブタブにあります。
あまりにも使い過ぎると、カメラを移動したときや煙を放出しているときに、レンダリングのシーケンスがチカチカしたり、ボリュームに変な帯が表示されます。これはボリューム内の不透明度の閾値が変化しているのが原因で、ボリュームがもっと薄くて透明なら、よりはっきりと表れます。
Opacity Limit を変更することで、レンダリング時間が1-5%だけ速くなります。デフォルト値は、既に強い値なので、予期しない画面の乱れが発生しないように注意してください。
-
Mantraは特にシェーダが完全に不透明であるとわかると、レンダリングパフォーマンス(レイトレースとマイクロポリゴンレンダリングの両方)を最適化します。レンダリングパフォーマンスを上げるには、不透明シェーダが定数
{1,1,1}
を不透明度(Of
)VEX変数に割り当てているか、またはシェーダを透明にするシェーダ/マテリアルパラメータが無効であることを確認してください。 -
IFDの生成時間とサイズを減らすには、変形ブラーではなくVelocityモーションブラーを使います。
See also |