Houdini 20.0 Solaris

Karmaのイメージフィルタとピクセルフィルタ

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

キー

タイプ

説明

planes

string

必須 OCIOで処理されるAOVsのリスト。

output

string

必須 出力カラー空間名。

input

string

ソースカラー空間名。デフォルトは"scene_linear"

looks

string

カラーグレーディング名をカンマで区切ったリスト。

例: [ "ocio", {"planes":"C,diff*,spec*", "output":"sRGB"} ]

denoise

キー

タイプ

説明

engine

string

適用するデノイザ(例えば、“oidn”や“optix”)。

aovs

list of strings

デノイズされるAOV名のリスト。デフォルトは["Cf"]

albedo

boolean

albedoプレーンをデノイザに渡すかどうか。

use_N_input

boolean

N, Ng, normalのプレーンをデノイザに渡すかどうか。

use_gl_output

boolean

OpenGLに直接出力するかどうか。

例: [ "denoise", {"engine":"optix", "use_n_input":true, "use_albedo_input":true ]

サンプルフィルタ

colorlimit

キー

タイプ

説明

planes

string

カラー制限するAOVの名前/パターンをカンマで区切ったリスト。

colorlimit

float

許可する最大チャンネル値。

例: [ "colorlimit", {"planes":"C*,color*,diff*", "colorlimit":10.0} ]

copyalpha

キー

タイプ

説明

planes

string

入力として使用するAOVの名前/パターンをカンマで区切ったリスト。

これは、レンダラーによって自動的に追加され、LPEで定義されたAOVsの4番目のコンポーネントにAfレンダーグローバルをコピーします。

ocio

以下のサンプルフィルタは、(ピクセルフィルタによってサンプルを結合した後に)イメージフィルタでカラー補正をもっと効率的に行なうための 主な例 です。

キー

タイプ

説明

planes

string

必須 OCIOで処理するAOVの名前/パターンをカンマで区切ったリスト。

output

string

必須 出力カラー空間名。

input

string

ソースカラー空間名。デフォルトは"data"です。

looks

string

カラーグレーディング名をカンマで区切ったリスト。

例: [ "ocio", {"planes":"C,diff*,spec*", "output":"sRGB"} ]

Tip

複数のイメージフィルタ(サンプルフィルタ)をチェーン化することができます:

[
    [ "denoise", {"engine":"oidn", "aovs":["Cf","diffuse","specular"]} ],
    [ "ocio", { "planes":"C,diff*", "output", "sRGB" }]
]

ピクセルフィルタ

Radial Pixel Filter

名前: bartlett, blackman, box, catrom, gauss, hanning, mitchell, sinc

これらのピクセルフィルタは、指定したフィルタ形状を使ってサンプルを結合する放射状フィルタです。

キー

タイプ

説明

width

float

フィルタの幅。

例: [ "gauss", {"width":2.5} ]

Unit Box Filter (ubox)

均一ボックスフィルタ。 これは、単にピクセルに入ったすべてのサンプルを平均化します。 これは、(フィルタ幅に基づいて)隣接ピクセルからサンプルをブレンドするボックスフィルタとは異なります。

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

レンダリング画像内のバリアンス(差異)に基づいて光線を分布させます。

キー

タイプ

説明

minrays

integer

最小サンプル数。

variance

float

ピクセル差異。

plane

string

測定する画像プレーン。

ociomode

integer

差異を測定する時のOCIO変換の適用方法。 0に設定すると無効になり(ガンマ2.0)、1に設定するとOCIO DisplayとOCIO Viewに基づいてカラー空間が選択され、2に設定すると直接OCIOカラー空間を指定することができます。

ociodisplay

string

OCIO Displayを指定します(ociomode1でない場合は無視されます)。

ocioview

string

OCIO Viewを指定します(ociomode1でない場合は無視されます)。

ociocolorspace

string

OCIOカラー空間を指定します(ociomode2でない場合は無視されます)。

例: [ "variance", {"minrays":2, "plane":"C", "variance":0.01} ]

Solaris

USD

ジオメトリ

  • SOP Geometry I/O

    HoudiniがSOPジオメトリをUSDに変換する方法、その工程を制御する方法の詳細。

  • Component Builder

    Component Builderツールは、マテリアル、バリアント、ペイロード、レイヤーをサポートし、SOPからUSDモデルを作成するためのネットワークスニペットを配置します。

レイアウト

  • Editノード

    ビューア内でインタラクティブにPrimsをトランスフォームさせます。物理衝突を使用して、プロップを現実的に配置することができます。

  • Layoutノード

    インスタンス化されたUSDアセットをシーンに取り込むツールが備わっています。個々にコンポーネントを配置したり、カスタマイズ可能なブラシを使って色々な方法でコンポーネントをペイント/スキャッターしたり、既存のインスタンスを編集することができます。

  • カスタムレイアウトブラシ

    Layout LOPの挙動をカスタマイズして利用可能なレイアウトブラシデジタルアセットの作成方法。

ルック開発

  • MaterialX

    HoudiniにはMaterialXシェーダノードに呼応させたVOPノードが用意されています。これらのノードを使用してシェーダネットワークを構築したり、既存のMaterialXベースのシェーダをインポートすることで、(HoudiniのUSDレンダラーの)KarmaでMaterialXシェーダノードを利用することができます。

  • UDIMパス

    テクスチャ空間の異なるタイルを、それぞれ別の解像度で、異なるテクスチャファイルにエンコードすることができます。その後、kaiju.exrといったテクスチャファイル名を指定すると、Houdiniがロード時にそのトークンを特定のタイルアドレスに置き換えてくれます。

  • シェーダ変換フレームワーク

    シェーダノードのUSDプリミティブへの変換を含む、Solarisシェーディングフレームについて説明しています。

Karmaレンダリング

チュートリアル