これは古い投稿だと思いますが、現在のプロジェクトに基づいて私の考えを追加したいと思いました。
他の人が言ったように、サンプルをピクセルに結び付けることの問題:
サンプルグリッドをビュー平面に結合し、投影やズームなどを行うのを困難にします
忠実度が不十分です。ランダムサンプリングは他の人が言ったように効率的であるため、均一なグリッドを使用してサンプリングする場合は、さらに多くのサンプルが必要になります
同等のサンプル数でグリッドアーティファクトが発生する可能性がはるかに高くなりますが、ランダムサンプリングでは、数が少ないと粒子が粗く見える傾向があります。
しかし、私はbuddhabrotのGPUアクセラレーションバージョンに取り組んでおり、ランダムサンプリングを使用したGPUコードに固有のいくつかの問題に遭遇しました。
- 何千ものサンプルを並行して生成する必要があるGPUコードのPRNGのオーバーヘッド/品質に問題がありました
- ランダムサンプリングは非常に分散したトレースを生成し、GPUは実際には、特定のブロック/ワープ内のスレッドが可能な限り一緒に移動することを望んでいます。クラスター化されたトレースと分散されたトレースのパフォーマンスの違いは、私のテストでは極端でした
- 効率的なatomicAddのための最新のGPUでのハードウェアサポートは、グローバルメモリへの書き込みがGPUbuddhabrotのボトルネックにならないことを意味します
- グリッドサンプリングを使用すると、2パスレンダリングを非常に簡単に実行できます。低解像度パスに基づいてサンプルポイントのブロックをスキップして、ビュープレーンのピクセルに逃げたり触れたりしないポイントを見つけます。
簡単に言うと、GPUは技術的には同等の品質を得るためにこの方法でより多くの作業を行う必要がありますが、実際にはAFAICTの方が高速であり、GPUは非常に高速であるため、再レンダリングは数時間(またはミリ秒)ではなく数秒/分で済むことがよくあります。低解像度/品質レベルでは、リアルタイムのブッダブロは非常にクールです)