Karmaがカメラからシーンに送信する光線のことを プライマリサンプル と呼びます。 プライマリサンプルは、小さいジオメトリディテール(カーブやディスプレイスメントなど)、被写界深度、モーションブラーなどのアンチエイリアシングのアーティファクトを解決します。 ピクセルサンプルが十分であれば、全体の鮮明さや画像品質を向上させることができます。
Tip
プライマリサンプルは、特に他のレンダラーでは カメラレイ 、 AAサンプル 、 ピクセルサンプル などと呼ばれることもあります。
プライマリサンプルが1つだと、粗い結果になりやすく、デバッグが目的の場合を除きお勧めできません。 ピクセルサンプルを増やすと、シーン内の形状はもっと滑らかな外観になります。 これによりセカンダリノイズでさえも品質が向上しますが、プライマリサンプルはセカンダリサンプルに対する乗数となっているため、サンプリングが過剰になってしまいます。 Karmaでのピクセルのオーバーサンプリングを防ぐには、Pixel Oracleが役に立ちます。
Pixel Oracle ¶
Karmaは、Pixel Oracleを使用して、 適応した プライマリサンプルに対応しています。 Pixel Oracleは、Karmaが各ピクセルから光線を放射するときに使用するロジックを表現します。 現在のところ、Karmaには、 Variance と Uniform の2つのPixel Oracleが同梱されています。
Note
Houdini20.5以降のKarma XPUは、 Pixel Oracle を介して、適応パストレースサンプルに対応しています。
デフォルトでは、Karmaは Variance Oracle を使用します。このVariance Oracleは、隣接ピクセル間の差異を検出します。 これによって、追加の各サンプルが最終ピクセルカラーにほとんど影響しなくなった時点でプライマリサンプルの送信を停止することで、プライマリサンプルの過剰な送信を防ぎます。 Karmaは少数のプライマリサンプルを送信し、その後、Variance OracleがピクセルとOracleの Variance Threshold の比較を開始します。 現行ピクセルと隣接ピクセルの前のサンプル間のバリアンス(差異)がその閾値内に収まると、Karmaはそのピクセルに対してプライマリサンプルの送信を停止します。
Uniform Oracle は、単純にシーン内のすべてのピクセルから同じ数のプライマリサンプルを送信します。 極端な被写界深度(DOF)やモーションブラーが画像を支配しているような時はUniform Oracleに切り替えると良いでしょう。 そのような場合だと、Karmaは結局のところすべてのピクセルを完全にサンプリングすることになるので、バリアンス測定はただオーバーヘッドを増やすだけです。
Pixel Oracle Render Properties