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