サンプリング

サンプリング

サンプリングは、画像のレンダリングに非常に重要なので、PRManではそのサンプリングを制御するための色々なモードと設定をたくさん用意しています。 各ピクセルは、通常では複数回サンプリングされ(つまりスーパーサンプリング)、そのピクセルは、ほとんどの場合、どのような順序でもサンプリングすることができます。

一般的には、サンプリングを制御する主な設定は、maxsamplesです。 デフォルトでは、minsamplesは、maxsamplesの平方根から計算されます。 pixelvarianceが0より大きい時、適応サンプリングが有効になります。 ユーザーは、pixelvarianceを上げることで、その適応性の強さを微調整することができます。 しかし、minsamplesmaxsamplesと同じに設定すると、サンプリングが固定になり、もはや適応性がなくなります。

サンプリングにおいて最大の選択の1つは、Incremental(増分)モードとNon-Incremental(非増分)モードのどちらを使用するかです。 Non-Incrementalモードでは、レンダラーは基本的に各ピクセルに1回アクセスし、まとめてすべてのサンプルを計算します。 ピクセル群を小さい集まりで作用させて、それらのまとまりをいくつかマルチコアのマシンで同時並行処理をすることができます。 それでもなお、指定したピクセルが最終的に表示された時、そのピクセルがその終了した結果を表示しています。 これは従来のレンダリングモードで、フレームバッファにレンダリングすると、画像は最初に真っ黒になり、その後、レンダーが終わるまで、タイル単位で埋められるように見えます。

Incremental Mode(増分モード)

images/sampNoninc.png

20%完了したNon-Incrementalレンダー

images/sampIncrem.png

20%完了したIncrementalレンダー

Incremental(増分)モードは、より新しいオプションです。 ここでは、レンダラーはラウンドロビン方式で画像のすべてのピクセルにアクセスし、それぞれに単一のサンプルを計算します。 その後、再度、各ピクセルにアクセスし、2番目のサンプルを計算します。これは、各ピクセルへのアクセスが想定回数に達するまで続きます。 フレームバッファに表示すると、全体の画像はノイズのかかった粗い形式ですぐに現れ、その後、時間の経過とともに徐々に細かくなっていきます。 これにより、最終画像がどのように見えるかがすぐにわかり、最終画像に明らかな調整が必要な場合はキャンセルすることができます。 しかし、合計レンダー時間は長くなることがあります。また、いくつかのレンダラー設定(PxrVCMなど)では、このモードが必要なことがあります。

固定サンプリング vs. 適応サンプリング

images/sampFixed.png

固定サンプリング, 2048個の最大サンプル

images/sampAdaptive.png

適応サンプリング, 2048個の最大サンプル, 1248個の実際の平均

各ピクセル内でのサンプルに関して、もう一つの主要な選択は、固定サンプリングまたは適応サンプリングのどちらを使用するかです。 この2つでは、固定サンプリングの方がシンプルな手法です。 レンダラーには、ピクセル毎の最大サンプル数を指定し、その数を計算し終わるまでレンダリングします。 Incremental(増分)モードでは、これは、画像を精密にするために、画像を引き継ぐパスの数を意味します。 2の累乗であるサンプル数は、それ以外のサンプル数よりも画像の差異が小さくなる傾向があります。 例えば256のサンプル数は、通常では257や280と比較して優れています。

もう一方の選択である適応サンプリングは、やや扱いが難しくなりますが、レンダーの速度が著しく上がることがあります。 この方法では、固定サンプリングと同様に、レンダラーにピクセル毎の最大サンプル数を指定しますが、最小サンプル数と差異の閾値も指定します。 各ピクセルは、これらの2つの範囲内で何度もサンプリングされます。各サンプルがピクセルに追加されるにつれ、レンダラーは、ピクセルがサンプルによりどれくらい変化するかをチェックします。 ピクセルにあまり変化がなく十分なサンプルが追加されると、レンダラーはサンプリングを停止します。 差異設定は、後続のサンプルによるピクセルへの変化量の閾値を制御し(つまり、小さい値ではサンプルが多くなり、レンダーが長くなる)、 最小サンプル数は、この閾値が確実に達成されるようにする制御を行ないやすくします(つまり、大きい値ではサンプルが多くなる)。 これらの3つの設定のうち、最大サンプル数だけは必ず指定する必要があります。 これを指定しない場合、最小サンプルと差異は、最大サンプル数に基づいた適度なデフォルト値になります。

追加の考察

その他にサンプリングを制御する3つのオプションがあります。 バケットオーダーおよびサイズ、クロップウィンドウです。 バケットオプションは、ピクセルのバッチサイズとピクセルがアクセスを受ける順序を制御します。 デフォルトは、左から右および上から下の領域へ進みます。スパイラルの順序は、通常、画像の中央を最初に表示するため、フレームバッファにレンダリングする場合に便利なオプションです。

クロップウィンドウは、レンダリングをイメージの一部のピクセルに限定します。 これは、相互レンダリング時に特定の範囲に集中したい場合や、ポスターサイズのイメージをピース毎にレンダリングする場合に便利です。