Deferred Shading

一般にフォワードレンダリングを使用する場合はライティングの計算結果をターゲットバッファーにレンダリングするが、ディファ―ドシェーディングではマテリアル情報を複数枚のバッファーから構成されたジオメトリバッファー (G-Buffers) に格納しておき、ライティングパスで専用のシェーダーを用いてライティングの計算を実行する。

(出典:LIGHT11

参考:

ディファードシェーディングレンダリングパス | Unity マニュアル [公式]

使い方

「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

CommandBuffer

参考:

Unity 5 の CommandBuffer を利用したレンダリングパイプラインの拡張について調べてみた | 凹みTips

Unity の Deferred で CommandBuffer を利用して GBuffer をいじってみる | 測度ゼロの抹茶チョコ

ビルトインレンダーパイプラインをコマンドバッファで拡張する | Unity マニュアル [公式]

Extending Unity 5 Rendering Pipeline: Command Buffers | Unity Technologies Blog [Official]

i-saint

参考:

i-saint/DeferredShading – GitHub

Deferred Shading in Unity | primitive: blog

Temporal Screen Space Reflections | primitive: blog

 

タグ:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です