フォワードレンダリングは、入力ジオメトリとライティング情報から直接表面フラグメントの輝度値を計算するプロセスです。遅延レンダリングは、そのプロセスを2つのステップに分割します。最初に、入力ジオメトリをラスタライズして構築されたマテリアルプロパティ(ジオメトリバッファ、またはGバッファ)を含むスクリーンスペースバッファを生成し、次にG-を組み合わせて各ピクセルの輝度値を生成します。照明情報を含むバッファ。
遅延レンダリングは、多くの場合、フォワードレンダリングの最適化として提示されます。1つの説明は、ライティングはかなり高価であり、オーバードローがある場合は画面に表示されないピクセルをライティングしているのに対し、マテリアルプロパティをGバッファに格納して後でライトする場合は、ライティングするピクセルのみをライティングするということです。実際に画面に表示されます。これはあなたにも、深さ、プリパスを行い、その後にデプステストセットで前方のレンダリングパスを行うことができますことを考えると、実際に延期の利点であるD3D11_COMPARISON_EQUAL
か、GL_EQUAL
または同等の?
遅延レンダリングには、GPUでより適切にスケジュールする可能性もあります。1つの大きなワープ/波面を小さなジオメトリ波面に分割し、その後小さな照明波面を使用すると、占有率が向上します(同時に飛行中の波面が増えます)。ただし、帯域幅の使用量も多くなります(多数のチャネルをGバッファーに書き込んでから、ライティング中にそれらを読み戻す)。ここでの詳細は明らかにGPUに大きく依存しますが、一般的な原則は何ですか?
フォワードレンダリングと据え置きレンダリングのどちらを決定するかについて、他にパフォーマンスに関する考慮事項はありますか?(必要に応じて、各手法のバリエーションを使用できると想定します。つまり、前方向のタイルと遅延後のタイルを比較することもできます。)