On this page |
Karmaレンダリングパイプラインには、3タイプの別々のフィルタが存在します。
-
サンプルフィルタ
-
ピクセルフィルタ
-
イメージフィルタ
各フィルタは、レンダリングパイプラインの異なるステージでAOVデータに対して動作します。 サンプルフィルタは、光線評価から直接Rawサンプルデータにアクセスします。 上記のフィルタは、他のサンプルとは無関係に実行されます。
ピクセルフィルタは、複数のサンプルを単一ピクセル値に結合します。
イメージフィルタは、すべてのピクセルが解決された後に、画像全体を処理します。
コマンドラインツールで以下のコマンドをタイプすることで、すべてのフィルタのリストを取得することができます:
karma --filters
現在のところ、これは、フィルタを制御するオプションを何もリストしません。
サンプルフィルタとイメージフィルタは、"グローバル"で、すべてのAOVsに対して同時に実行します。 例えば、サンプルフィルタは、異なるカラーコンポーネントの複数のAOVsを受け取って、それらを異なるAOVに合算することができます。 イメージフィルタは、何枚かのAOVsを受け取って、それらを使って他のAOVsに対してノイズ除去を実行することができます。 レンダー毎にサンプルフィルタとイメージフィルタを複数指定することができます。
一方で、ピクセルフィルタは、AOV毎に定義します。 そのため、color AOVにはサンプルを平均化するピクセルフィルタを適用し、サーフェス法線のAOVには単一サンプルを取得するピクセルフィルタを適用することができます。 AOV毎にピクセルフィルタを1つだけ定義します。
サンプルフィルタとイメージフィルタは、JSON文字列を使って指定します。 各フィルタは、2個のエレメントのJSONリストで指定します。 1番目のエレメントには、フィルタの名前を、2番目のエレメントには、そのフィルタの挙動を制御するための引数の辞書を指定します。
イメージフィルタ
ocio [arguments]
-
string planes <aov_pattern> OCIOで処理させるAOVsのリスト(必須)
-
string output <output_space> 出力カラースペース(必須)
-
string input <input_space> ソースカラースペース(デフォルトは"scene_linear")
-
string looks <looks> カンマ区切りのカラーグレーディングのリスト
例: [ "ocio", {"planes":"C,diff*,spec*", "output":"sRGB"} ]
Denoise-Optix [arguments]
-
bool albedo "albedo"プレーンをデノイザに渡します
-
bool use_N_input "N", "Ng", "normal"のプレーンをデノイザに渡します
-
bool use_gl_output OpenGLに直接出力します
例: [ "Denoise-Optix", {"use_n_input":true, "use_albedo_input":true, "use_gl_output": false ]
サンプルフィルタ
colorlimit [arguments]
-
string planes <aov_pattern> カラー制限するAOVsのリスト
-
float colorlimit <value> 許可する最大チャンネル値
例: [ "colorlimit", {"planes":"C*,color*,diff*", "colorlimit":10.0} ]
copyalpha [arguments]
-
string planes <aov_pattern> 入力のプレーンのリスト
これは、レンダラーによって自動的に追加され、LPEで定義されたAOVsの4番目のコンポーネントにAfレンダーグローバルをコピーします。
ocio [arguments]
-
string planes <aov_pattern> OCIOで処理させるAOVsのリスト(必須)
-
string output <output_space> 出力カラースペース(必須)
-
string input <input_space> ソースカラースペース(デフォルトは"data")
-
string looks <looks> カンマ区切りのカラーグレーディングのリスト
以下のサンプルフィルタは、主に(ピクセルフィルタによってサンプルを結合した後に)イメージフィルタでカラー補正をもっと効率的に行なうための例です。
例: [ "ocio", {"planes":"C,diff*,spec*", "output":"sRGB"} ]
Tip
複数のイメージフィルタ(サンプルフィルタ)をチェーン化することができます:
[ [ "Denoise-Optix", {} ], [ "ocio", { "planes":"C,diff*", "output", "sRGB" }] ]
ピクセルフィルタ
Radial Pixel Filter
名前: bartlett, blackman, box, catrom, gauss, hanning, mitchell, sinc
これらのピクセルフィルタは、指定したフィルタ形状を使ってサンプルを結合する放射状フィルタです。
オプション
-
float width <filter_width> フィルタの幅
例: [ "gauss", {"width":2.5} ]
Unit Box Filter
均一ボックスフィルタ。 これは、単にピクセルに入ったすべてのサンプルを平均化します。 これは、(フィルタ幅に基づいて)隣接ピクセルからサンプルをブレンドするボックスフィルタとは異なります。
Min/Max Filters
名前: min, max
サンプル値の内、最小値または最大値のみを受け取ります。
名前: omin, omax
現在のところ、これらはmin, maxフィルタと同義です。
名前: ocover, edge, idcover
現在のところ、これらは実装されていません。
Pixel Oracles
Pixel Oraclesは、Karmaのフィルタに関係しています。 Pixel Oraclesは、追加でサンプルを送信する必要のある領域をレンダラーに伝える際に使用します。 フィルタとは違って、Pixel Oraclesは、引数に渡された単純な文字列を受け取ります。
現在のところ、2つのPixel Oraclesがあります:
uniform
-
各ピクセルに対して光線を均一に分布させます。各ピクセルは、常に同じ数の光線サンプルを取得します。
variance
-
-a <adjacent_count>
隣接ピクセル(8)との差異を見ます -
-m <min_samples>
最小サンプル数 -
-v <variance>
ピクセルの差異を指定します -
-c <color_aov>
測定する画像プレーン