Arnold デノイザー

Arnold デノイザー(Noice)は、スタンドアロン プログラムの後処理用デノイザーの実行ファイルです。 複数のレイヤの EXR ファイルで使用し、ノイズ除去レイヤを含む EXR ファイルを出力します。 これには複数のフレームと複数のライト AOV が考慮されています。 すべての AOV の分散情報が必要で、法線、深さ、アルベドを必要に応じて使用します。 ほとんどのデノイザーと同じように、現在のピクセル周囲の近傍を考慮し、一緒にブレンドする任意の検索領域内で類似した近傍を検索します。

入力

必要な入力レイヤ

最低限入力する必要がある情報は、次のとおりです。

  • ノイズを除去するメイン レイヤ(一般に「ビューティ」と呼ばれている RGBA)
  • ピクセル単位の変動を指定する分散レイヤ

各 AOV の対応先を Noice が自動的に検出できるように、出力ドライバの「preserve layer name」をオンに設定することをお勧めします。

オプションのフィーチャ レイヤ

これらのオプション レイヤはノイズ除去のガイドとして使用され、仕上がり品質を大幅に向上させます。

  • 法線(N)
  • 深さ(Z)
  • アルベド(denoise_albedo)

一緒にノイズを除去するオプションのライト AOV

追加ライトの AOV は元の EXR 内にあります。要求された場合(-l light_aov_name)、これらはビューティ レイヤを使用して一緒にノイズが除去されます。デノイズの主な目的はビューティのノイズを削減することですが、特定の AOV においては逆にノイズが増えてしまうことがあります。

オプションの追加フレーム

時間軸におけるちらつきを抑えるために、複数の追加フレームを指定できます(-i render.002.exr -i render.001.exr -i render.003.exr など)。

シーケンスの処理

すべての入力イメージを指定する代わりに、-f n または --frames n フラグを使用して、イメージ シーケンスのノイズを除去することもできます。別の引数(-ef n または --extraframes n)は、アニメーション シーケンスの安定性を高めるために、現在のフレームの前後で使用する追加ソース フレームの数を指定します。

次の例では、Noice はフレーム 5 以降の 10 個の連続フレームに対して実行され、各ソース フレームの前の 2 フレームと後の 2 フレームが反映されます(たとえば、ソース フレームの番号が 5 の場合は、フレーム 3、4、5、6、および 7 が反映されます)。

 

noice -i mysequence.0005.exr -o denoised.0005.exr -f 10 -ef 2

 

出力

出力ファイルには、元のレイヤと同じ名前を持つ、ノイズが除去されたレイヤが含まれます。

引数

ピクセル隣接パッチ半径

ノイズ除去の柔らかさを向上させます(フィーチャは常に維持されます)。既定値は 3 (大きい側)です。0 または 1 に設定すると効果が低くなり、3 が中間値、5 で最も効果が高くなります。

すべてのピクセルで、Noice は近接するパッチを考慮し(Noice はツール名で、noise と nice からの造語であり、「ノイス」と読みます)、類似した隣接パッチを持つ他のピクセルを探します。 この隣接範囲の半径は、-patchradius (または -pr)コマンド ライン引数を使用してコントロールできます。既定値は 3 に設定されていて、隣接範囲は 7 x 7 の正方形になります。

ピクセル検索範囲半径

類似した近傍が見つかる領域です。 値が大きいほど精度は上がりますが、ノイズ除去のコストが増大します。すべてのピクセルで、Noice はコマンド ライン引数 -searchradius (-sr)で設定された半径を持つ正方形領域を検索します。 この領域が大きいほど、ノイズ除去の安定性は高まり、考慮しなければならない類似した近傍が見つかる可能性は高くなります。既定値は 9 で、隣接範囲は 19 x 19 の正方形になります。 21 (42 x 42 の検索範囲)に設定すると、5 つのフレームをロードするのと同等なピクセル領域が検索されます。

 

分散

フィルタの強度は、分散パラメータで決定され、分散が大きいほど、ノイズ除去は強力になります。 通常、分散に適した値(低/中/高)はそれぞれ 0.25/0.5 (既定値)/0.75 です。
ノイズを除去するときの Noice のアグレッシブさをコントロールするには、コマンド ライン引数 -variance (-v)を使用して分散しきい値を設定します。既定値は 0.5 です。値が大きいほど、カラーの差異が大きいものを類似した近傍であると判断し、よりアグレッシブにノイズを除去します。

 

入力ファイル

Noice の入力ファイルは、コマンド ライン引数 -input (-i)を使用して指定できます。また、次の方法によって、ノイズ除去するフレーム前後で複数のフレームを指定することもできます。
   -i <current_frame> -i <additional frames in order>
   -i render.0010.exr -i render.0008.exr -i render.0009.exr -i render.0011.exr -i render.0012.exr

ライトの AOV

一緒にノイズを除去する追加のライト AOV は、コマンド ライン引数 -aov (-l)を使用して指定できます。たとえば次のようになります。
   -l back_lights -l RGBA -l key_light

カスタム フィーチャ画層

上級ユーザ向けの -fe フラグ(または --features)は、ノイズ除去のガイド フィーチャとして使用される AOV を指定します。

出力ファイル

出力ファイルは、コマンド ライン引数 -output (-o)を使用して指定できます。

Ass ファイルの例

これらの追加 AOV ファイルはオプションですが、ノイズを除去する RGBA AOV および追加 AOV の分散情報は必須です。N、Z、および denoise_albedo を指定すると、デノイザーの結果が大幅に良くなります。

   outputs 7 1 STRING
    "RGBA RGBA filter driver"
    "RGB RGB variance driver RGB_variance"
    "LPE_name RGBA filter driver"
    "LPE_name RGB variance driver LPE_name_variance"
    "denoise_albedo RGB filter driver albedo"
    "N RGB defaultArnoldFilter@gaussian_filter driver"
    "Z RGB filter driver"

 

同じソースを持つ AOV は、最後に指定される EXR レイヤ名を使用することに注意してください。 レイヤ名は重要ではありませんが、「_variance」を追加すると、処理がよりわかりやすくなります。

 

フィルタは次のように設定する必要があります(ここでは gaussian_filter を使用しますが、variance_filter.filter_weights 内で一致が見つかる場合は、他の任意のフィルタを使用できます)。

 
   <filter_type>_filter
   {
    name filter
    width <radius>
   }
   variance_filter
   {
    name variance
    filter_weights <filter_type>
    width <radius>
    scalar_mode false
   }
 


  • No labels