ディファードシェーディング
一般にフォワードレンダリングを使用する場合はライティングの計算結果をターゲットバッファーにレンダリングするが、ディファ―ドシェーディングではマテリアル情報を複数枚のバッファーから構成されたジオメトリバッファー (G-Buffers) に格納しておき、ライティングパスで専用のシェーダーを用いてライティングの計算を実行する。
(出典:LIGHT11 )
公式サイト:
ディファードシェーディングレンダリングパス | Unity マニュアル [公式]
参考:
Deferred Shading でライトを贅沢に使いたい!基本的な概念の説明とメリデメを考察 | LIGHT11
使い方
「Project Settings > Graphics」を開き、「Tier Settings」で各 Tier の「Use Defaults」を解除して「Rendering Path」を Deferred
に切り替える。
参考:
ビルトインレンダーパイプラインのレンダリングパス | Unity マニュアル [公式]
概要
参考:
Forward レンダリングと Deferred レンダリングの違いを軽くまとめてみた – Qiita
Deferred Shading についてまとめてみた | しゅみぷろ
メリット/デメリット
(出典:LIGHT11 )
メリット
- 複数の光源の影響を正確に計算できる。
デメリット
- 半透明のオブジェクトはフォワードレンダリングで描画される。
- ビルトインのアンチエイリアス (MSAA) が使用できない。
- Mesh Renderer 毎に影を無効化できない。
ライティング
参考:
Deferred Shading でライトを贅沢に使いたい!基本的な概念の説明とメリデメを考察 | LIGHT11
ドット絵を処理する
参考:
邪道な Deferred の使い方で苦しんだ話 – Qiita
Command Buffer
参考:
Unity 5 の Command Buffer を利用したレンダリングパイプラインの拡張について調べてみた | 凹みTips
Unity の Deferred で Command Buffer を利用して GBuffer をいじってみる | 測度ゼロの抹茶チョコ
ビルトインレンダーパイプラインをコマンドバッファで拡張する | Unity マニュアル [公式]
Extending Unity 5 Rendering Pipeline: Command Buffers | Unity Technologies Blog [Official]
i-saint
リポジトリ:
i-saint/DeferredShading – GitHub
参考: