Context(s) | displace fog light shadow surface |
void nextsample(int &sid, float &sx, float &sy, ...)
void nextsample(int &sid, vector &svec, ...)
newsamplerとこの関数は、ピクセルアンチエイリアスでMantraが使用する高品質な決定的サンプリングパターンを生成します。
レイトレーシングモードでレンダリングする時、SID
グローバル変数でサンプリングシーケンスを初期化することで、nextsample
ルーチンによる決定的2Dサンプルを生成することができます。
このメソッドは2Dまたは3Dのサンプリングパターンのどれかを生成することができます。2Dサンプルを生成するためには、2つの書き込みのみのfloatの引数を関数に指定します。 3Dサンプルを生成するためには、書き込みのみのvectorの引数を関数に指定します。
"mode"
引数を追加して、その後に以下のどれかを指定することができます:
“qstrat”
パターン内の次のサンプルに進みます。newsamplerを使用する時に、このモードを使ってください。
“nextpixel”
パターン内の新しいピクセルサンプリングに進みます。ピクセル内に十分な品質のサンプリングパターンを生成するためにSIDとレイトレーシングを使用する時に、このモードを使ってください。このモードは、現行ピクセル内で他のサンプルを考慮し、適切にピクセル自体を層状にします。マイクロポリゴンレンダリングの場合、“nextpixel”は“qstrat”と同じ動作をします。
“decorrelate”
新しくお互いに関係のないサンプルに進みます。決定的に既存シーケンスと関係のない新しいサンプリングシーケンスを生成する場合は、このモードを使ってください。“nextpixel”と同様に、このモードはSIDとレイトレーシングを使用する時に高品質なピクセルサンプリングを保持します。
int nsamples = 10; int sid = israytrace ? SID : newsampler(); for (i = 0; i < nsamples; i++) { if (israytrace) nextsample(sid, sx, sy, "mode", "nextpixel"); else nextsample(sid, sx, sy, "mode", "qstrat"); // sx/syと使って何かをサンプリングします... }
See also | |
pbr |
|
sampling |