Closed3

Deferred RenderingとForward Renderingの違い

0y00y0

先に結論

Forward Renderingが適している場合

  • 光源の数が少ないシーン
  • 半透明オブジェクトが多いシーン
  • 低スペックのハードウェアやモバイルデバイス向けのアプリケーション

Deferred Renderingが適している場合

  • 多数の動的光源が存在するシーン
  • 複雑なライティング効果を必要とするシーン
  • 半透明オブジェクトが少ない、または存在しないシーン
0y00y0

Forward Rendering

  • シーン内の各オブジェクトに対して、頂点シェーダで座標変換を行い、フラグメントシェーダでライティング計算を実行
  • 各オブジェクトごとにライティングとシェーディングを行うため、実装が比較的シンプルであり、少数の光源や半透明オブジェクトが多いシーンに適している
  • 多数の光源が存在する場合、各オブジェクトに対して光源ごとの計算が必要となり、パフォーマンスの低下が生じる可能性がある

Deferred Rendering

  • 最初にジオメトリ情報(色、法線、深度など)をG-Bufferと呼ばれる複数のレンダーターゲットに書き込み、G-Bufferの情報を基にライティング計算をまとめて行う
  • 多数の光源が存在するシーンでも効率的にライティングを処理でき、特にポイントライトやスポットライトが多いシーンで効果を発揮
  • 半透明オブジェクトの処理が難しく、別途Forward Renderingで描画する必要がある点や、G-Bufferのメモリ使用量が増加する点に注意が必要
このスクラップは2025/02/12にクローズされました