学習目的で、レイトレーシングのテクニックを調べていました。私は最近、グローバル イルミネーションとその変種を発見し、ケビン ビーソンによるこの素晴らしい作品を読みました。smallpt を別の言語 (Lua) に移植しようとしました。
これまでのところ、問題なく動作していますが、私の意見では、シーンのレンダリングが遅すぎます。これまでのところ、私はインターネットを掘り下げました。これがグローバル イルミネーション技術、特にパス トレーシングの主な問題であるという主題をカバーする多くの技術論文を見てきました。
充填曲線の間隔 (たとえば、ヒルベルト曲線) など、プロセスを高速化する方法があるように思えます。基本的に、それらはすべてビューポートをバケット (またはタイル) に分割し、レンダリングに命令して、特定の順序で各バケットのパス トレーシングを処理します。技術的には、ヒルベルト曲線を実装する方法を見ていませんでしたが、実際には、これによりプロセス全体がどのように高速化されるかを理解したいですか?
私の最初の仮定は、各バケット appart を考慮すると、レンダラーは特定のピクセルで呼び出され、その他は補間トリックを使用したサンプルでしたが、実際には、レンダラーはバケットの各ピクセルで呼び出されるようです。
したがって、結果として、レンダラーはマップのすべてのピクセルを処理します。私の控えめな意見では、ネストされた 2 つの for ループ (行ごと、列ごと) と同じ量の作業になります。だから私は明らかに何かが欠けていることを知っているので、いくつかの明確な説明を楽しみにしています.
前もって感謝します。