Houdini 20.0 Solaris Karmaユーザガイド

Karmaユーザガイド ノイズの軽減

On this page

概要

最初のレンダリング、すべてのサンプルを1に設定。
最終レンダリング、適切なサンプリング。

この章では、Karmaでノイズを軽減するための戦略とワークフローを紹介します。 それはサンプリングの概念を応用しています。 この章では、AutomaticとPath Tracedの両方の収束モードについて説明します。

ノイズの特定

レンダリングにノイズが多い時、最初にすべき事はそのノイズの原因の特定です。 レンダリングで目視できるノイズには、多くの要因が絡んでいるため、そのノイズの原因を特定するのは困難です。 AOV(Render Var)を追加すれば、様々なサンプルを検査してそのノイズの原因を特定することができます。

Karma Render Propertiesには、 Optimization AOVs という名前のクイックセットアップがあります。 このセットアップを適用すると、ノイズの原因を特定する際に役立つ様々なAOVが追加されます。

これらのAOVを追加すれば、レンダリングを検査し、目に見えるノイズの原因になっている光線タイプを特定することができます。

Note

AOVを単独で見ると、ビューティー画像から想定していたものよりもずっとノイズが多いように見えることでしょう。 様々なパスを分けて見るのは効果的ですが、その分離した状態で完璧にクリーンに見えている必要はありません。 ほとんどの場合、目指すのはクリーンなビューティー画像であるため、個々のAOVのノイズは問題になりません。

レンダリングエンジンに応じて、このガイドの別のセクションに注目してください:

自動ノイズの調整

Karma CPUは、自動収束モードで特定のタイプのノイズを対象とするコントロールを多数備えています。 以下の方法に従うと、複雑さが緩和され、レンダリングをクリーンアップする過程でオーバーサンプリングが生じるのを防ぐことができます。

  • 適切なサンプル設定を見つけられるようにするには、Karmaのサンプリング設定を最初にすべて1に設定すると効果的です。

  • プライマリサンプルから構築し、Karmaのサンプリングについて理解を深めていくと効果的です。

  • 様々な値の組み合わせを時間をかけて試した後、すべてをデフォルトにリセットし、何が変わったかを確認することも有効です。

プライマリサンプル

最初のステップは、プライマリサンプルを正しく設定することです。 プライマリサンプルは、ジオメトリの品質や、レンダリング中にKarmaが実行するその他すべてのサンプリングに影響します。 セカンダリサンプルにはピクセルサンプルが乗算されるため、 Min/Max Secondary Samples を1に設定することで、後で調整にかかる時間を短縮することができます。 これにより、Karmaが既に行なっているプライマリサンプリングに基づいて、後処理用のプライマリサンプルコントロールをすべて構築することができます。

Tip

プライマリサンプルの値には、簡単に2乗できる値(例えば、4, 9, 16, 25など)を設定することで、ノイズの解決に役立つ場合があります。

通常は、ビューティーパスを見るだけで、より多数のプライマリサンプルが必要な箇所を判断することができます。 ビューティーパスのアルファチャネルも役に立ちますが、Cryptomatte AOVは、サンプリング不足のプリミティブエッジを特定できるのでさらに便利です。 (ビューティー、アルファ、またはCryptomatte平面で)次のどれかの特徴が粗かったりノイズが多い場合は、目的の品質になるまでプライマリサンプルを増やしてください。

  • ノイズが多いヘアーまたはファー(BasisCurves)、エイリアシングがかかったジオメトリのエッジ。

  • ピクセル化されている、または、ノイズが多いように見えるカーブの束。

  • ノイズの多いモーションブラー、または、エイリアシングがかかった被写界深度。

primarysamples AOVによる検査は、プライマリサンプルを増やしても品質が向上しない場合に役立ちます。 これは、被写界深度(DOF)やモーションブラーの品質の影響を大きく受けるレンダリングで発生しやすいです。 実際のピクセルサンプル数がPrimary Samplesパラメータで設定した値に達していない場合、Pixel Oracleが十分なピクセルサンプリングを妨げていると考えられます。 Pixel OracleのVariance Thresholdを下げて、送られるピクセルサンプルが増えるかどうかを確認してください。 増えない場合、続けてプライマリサンプルを増やすか、または、Uniform Pixel Oracleに切り替えると良いでしょう。

Tip

モーションブラーが非常に多い領域で、モーションブラーノイズのように見えるものが、実際にはセカンダリサンプルであるという場合があります。 ピクセルサンプルが正しい場合でも、他のセカンダリサンプルAOVを時折チェックする必要があります。

セカンダリサンプル

適切なプライマリサンプルが得られたら、次はセカンダリサンプルからノイズを減らします。 Min/Max Secondary Samples パラメータは、 すべての 直接および間接光線の品質に同時に影響します。 サンプルを増やすと、直接AOVおよび間接AOVのすべてでノイズが減少します。

Min/Max Secondary Samples

様々な最適化AOVを調査した後、ノイズがかなり均一である場合には、 Max Secondary Samples を2または3に増やします。 これにより、画像内のセカンダリノイズが減少し始めることでしょう。

サンプルが足りないように見える領域がある場合は、品質スライダを調整する前に、 Secondary Samples Noise Level0.005などの値に減らしてみてください。 このセカンダリノイズレベルは、色設定、モニターのキャリブレーション、プリファレンスなど、多数の要因に大きく依存しています。 セカンダリノイズレベルを適切にすると、全体のレンダリング時間はなるべく増やさないようにしながら、目立つノイズをターゲットにすることができます。

間接サンプル品質

Indirect Samples Quality コントロールを使用すると、特定の光線タイプをターゲットにして、最後に少し残ったノイズを取り除くことができます。 以下のAOVは、それぞれの品質コントロールに呼応しています:

コントロール

AOV(Render Var)

Diffuse Quality

directdiffuseindirectdiffuseindirectemission

Reflection Quality

directglossyreflectionindirectglossyreflection

Refraction Quality

glossytransmission

Volume Quality

directvolumeindirectvolume

SSS Quality

sss

ビューティーレンダリングでノイズを調整する時は、上記のAOVを参考に使用します。 ライティングやその他の要因によって、他よりも目立つ光線タイプが出てくることでしょう。 AOV自体を完全に解決する必要がある場合を除き、ビューティーパスをクリーンアップすることに集中してください。

Light Sampling Quality

プライマリおよびセカンダリサンプルの調整をすべて行なった後も、ソフトシャドウがまだサンプリング不足の場合は、 Light Sampling Quality を使用すると、画像のそのような領域を改善することができます。

Light Sampling Quality: 1
Light Sampling Quality: 2
Light Sampling Quality: 3

デフォルトでは、Karmaはライトを1回だけサンプリングします。 Light Sampling Quality を増やすと、Karmaによるライトのサンプリング頻度が上がります。 シャドウの品質は、通常、ビューティーパスを見るだけではっきり分かります。 directdiffuse AOVは、シャドウ品質を個別に判断するのに役立ちます。

パストレースノイズの削減

基本的に、Path Traced収束モード(Karma XPUで使用できる唯一のモード)では、パストレースサンプルを増やすことが、すべてのタイプのノイズを減らせる唯一の制御です。 シャドウを良くしたい時は Light Sampling Quality を上げますが、他の方法でノイズを減らすには、パストレースサンプルを増やす必要があります。

Karma CPUは、Path Traced収束を使ったPixel Oracleに対応しています。 primarysamples AOVを調べると、Pixel Oracleがピクセルサンプルを制限しているかどうかが分かります。 Variance Threshold を下げてノイズを減らすか、少なくともすべての光線が各ピクセルから実際に放出されていることを確認してください。

特定のプリミティブ上のノイズを解決する

プライマリおよびセカンダリサンプリングを調整した後も、ノイズの多いオブジェクトがレンダリングにしつこく残る場合があります。 このような状況に対処するため、Karmaはオブジェクト毎のレンダリングプロパティに対応しています。 これらのプロパティを使用すると、シーン内の 特定のオブジェクト のサンプリングを改善することができます。

選択したエンジンや収束モードが指定したグローバルプロパティに対応していない場合、オブジェクト毎のプロパティは何の効果もありません。 例えば、Karma XPUを使用してレンダリングした場合、Min/Max Secondary Samplesは何の効果もありません。

球のReflection Quality
円柱のRefraction Quality
立方体のSSS Quality

Render Geometry Settings

オブジェクト毎のレンダリングプロパティを設定します。 このノードでは、primvars:karma:objectネームスペース内のすべてのKarmaプロパティが利用可能なはずです。

Light

ライト毎のレンダリングプロパティを設定します。 このノードでは、primvars:karma:lightネームスペース内のすべてのKarmaプロパティが利用可能なはずです。

Note

Primary SamplesとPath Traced Samplesは、オブジェクト毎に設定することが できません

ほとんどの場合、各オブジェクトプロパティがそれに呼応するグローバルプロパティと乗算されます。 グローバルプロパティをスケールしないプロパティは、そのオブジェクトのオーバーライドとして機能します(オブジェクト毎のMin/Max Secondary Samplesなど)。 ライトは、ライト毎の Sampling Quality プロパティを介して、グローバルなライトのサンプリング品質をスケールさせることができます。

デノイザ

デノイザは、レンダリングで最後に残ったノイズをクリーンアップします。 ただし、開始時に十分なサンプリングがないと、デノイザは重要なディテールを除去する結果になります。

Image Filters

画像がディスクに書き込まれる時、レンダリングを自動的にデノイズします。

Denoise COP

COPネットワーク内でOIDNまたはOptixデノイザを実行します。

idenoise

指定された画像をデノイズするコマンドラインユーティリティ。

Note

デノイズの際は、2倍の解像度でレンダリングしてデノイズすると効果的です。 これにより、ピクセルの合計数が 4倍 になるため、ピクセルサンプルも25% 減らす 必要があります。 このテクニックの詳細については、Rebelwayによる分かりやすい説明を参照してください。

現在のところ、Karmaには、特別な設定なしで完全に機能するIntelのOIDNが同梱されています。 NVidiaのOptix Denoiserにも対応していますが、このデノイザを機能させるには適切なGPUドライバが必要です。

Tips

屋内

  • Portal Lightシェルフツールを使用することで、ドームライトでもっとたくさんのサンプルを取り込みたい領域を指示することができます。

  • 特に屋内に長くて細い矩形ライトがある場合、ライトツリーからライトの除去を試みてください。

ヘアー/ファー

  • Path Tracedサンプリングの方が自動収束よりもはるかに高速である場合が多いです。カーブが非常に多いと、セカンダリノイズの除去に費やす時間は収拾がつかなくなってしまうことが多いです。

  • ヘアー/ファーのシェーダのRoughness値が0.1~0.2以下の場合だと、たくさんのノイズが発生しやすいです。特にKarma CPUを使用する場合、Roughness値をその範囲よりも大きい値に維持するようにしてください。

被写界深度

  • 被写界深度が非常に強いシーンでは、Path Traced収束やUniform Pixel Oracleを使用すると、収束が速くなる場合があります。

  • デノイズ処理は、被写界深度が強いシーンでは、より効果的です。

モーションブラー

  • シーン内のカメラやオブジェクトが大きく移動している場合、Path Traced収束やUniform Pixel Oralceによってレンダリング時間を短くすることができます。

  • 同一プロセス内での複数フレームのレンダリングは、レンダリング時間を短くすることができます。時間が変化しているだけであれば、USDとKarmaは、すべての構成の再変更も再読み込みもする必要がありません。フレームを進めたら、値を更新するだけです。これは、特に膨大な数のレイヤーやテクスチャが含まれたシーンでは、とても効果があります。

XPU Tips

  • バウンスやSSSが多いシェーダまたはシーンほど、Optixデバイスの作業量が増えてしまいます。その結果、レンダリング全体に占めるOptixデバイスの貢献度が低くなってしまいます。

  • シェーダコンパイル時間が原因で最初のフレームのレンダリングが遅れてしまいます。このため、同一プロセス内での複数フレームのレンダリングは、Karma XPUを使用したレンダリングの反復回数を大幅に減らすことができます。

マテリアル

  • Opacity/Transmission入力にテクスチャマップを接続すると、品質/パフォーマンスを下げてしまいます。たとえそのテクスチャマップが定数値だったとしても、Karmaはオブジェクトをサンプリングするのに多くの処理をする必要があります。

コースティクス

  • True Causticsを有効にした場合、ノイズを解決するのにはもっとサンプルが必要になります。また、 Diffuse LimitColor Limit を上げたり、さらには Indirect Guiding も有効にする必要があります。

Karmaユーザガイド

リファレンス