遅延シェーディング

遅延シェーディング(Deferred Shading)とは



遅延シェーディングは、3Dグラフィックスのレンダリング手法の一つで、画面空間(スクリーンスペース)上でシェーディング(陰影計算)を行う技術です。従来のフォワードシェーディングとは異なり、シェーディング処理を後回しにする点が大きな特徴です。

処理の流れ



遅延シェーディングは、主に以下の2つのパスで処理を行います。

1. 第1パス(ジオメトリパス): 頂点シェーダーからピクセルシェーダーまでの処理を行い、シェーディングに必要な情報を収集します。この段階では、実際にシェーディングは行われず、各表面の位置、法線、マテリアルなどの情報がジオメトリバッファ(G-Buffer)と呼ばれるテクスチャに格納されます。
2. 第2パス(シェーディングパス): G-Bufferに保存された情報を基に、ピクセルごとに直接照明や間接照明の計算を行います。

遅延シェーディングのメリット



光源の数に依存しない処理: フォワードシェーディングでは、光源の数が増えるにつれて処理負荷が増大しますが、遅延シェーディングでは、光源の数に関わらず1回のジオメトリパスで処理が完了します。これにより、多数の光源が存在する複雑なシーンでも、パフォーマンスを維持できます。
リソース管理の柔軟性: 光源の形状、色、数などの特性を容易に制御でき、複雑なライティング環境におけるリソース管理が容易になります。
ソフトウェアレンダリングパイプラインの単純化: CPUとGPU両方において、レンダリングパイプラインを単純化できます。

遅延シェーディングのデメリット



透明度の処理: 透明なオブジェクトの描画が難しいという課題があります。Zバッファを使用する一般的なシーンでは、透明なオブジェクトの描画は、深度ソートを行うことで解決されることが多いですが、遅延シェーディングでは、この処理との相性が悪いです。
複数マテリアルの使用: 複数の異なるマテリアルを使用する場合、G-Bufferに保存するデータ量が増加し、メモリ帯域を圧迫します。これにより、パフォーマンスが低下する可能性があります。
アンチエイリアスの適用: ハードウェアアンチエイリアスを適用した場合、位置、法線、接線などの属性がサブピクセルで補間されるため、結果が不正確になる可能性があります。この問題を解決するために、ポストエフェクトとしてエッジ検出を行い、エッジをぼかす手法が用いられます。

遅延ライティング



遅延ライティングは、遅延シェーディングを改良した手法で、3つのパスを使用します。

1. 第1パス: ジオメトリ情報をG-Bufferに格納し、ピクセルごとの放射照度(irradiance)を記録します。
2. 第2パス: G-Bufferを参照し、スクリーンスペース上で拡散反射と鏡面反射の光源データを計算します。
3. 第3パス: 第2パスで生成された光源データを基に、シーンを再度レンダリングし、最終的なシェーディング結果を出力します。

遅延ライティングのメリットは、G-Bufferのサイズを大幅に削減できる点です。これにより、複数マテリアル問題やMSAAの適用を改善できます。一方、デメリットとしては、シーンのジオメトリを2度レンダリングする必要がある点です。

商業ゲームでの利用例



遅延ライティングの利用例



ALAN WAKE
BioShock Infinite
Crysis 2
Grand Theft Auto IV
Halo:Reach

遅延シェーディングの利用例



Amnesia: The Dark Descent
バトルフィールド3
KILLZONE 2、KILLZONE 3
Metro 2033
Dota 2

遅延技術を採用しているゲームエンジン



CryENGINE 3
Unity
* Unreal Engine 3

歴史



遅延シェーディングの概念は、1988年の論文で発表されました。しかし、「遅延」という言葉は使われず、各ピクセルをデプス解像度後に1度だけシェーディングするという考え方が示されました。G-Bufferを使った現在の形に近い遅延シェーディングは、1990年に発表されましたが、この論文でも「遅延」という言葉は使われていませんでした。

2004年頃から、遅延シェーディングに適したグラフィックスハードウェアが登場し始め、コンピュータゲームなどのアプリケーションで広く使われるようになりました。

まとめ



遅延シェーディングと遅延ライティングは、3Dグラフィックスのレンダリングにおいて、より高度な表現を可能にする重要な技術です。これらの技術は、現代のゲーム開発において欠かせないものとなっています。それぞれのメリットとデメリットを理解し、適切な手法を選択することが重要です。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。