LoginSignup
55

More than 5 years have passed since last update.

【Unity】ForwardレンダリングとDeferredレンダリングの違いを軽くまとめてみた

Last updated at Posted at 2017-06-13

はじめに

レンダリングに関する理解を深めるため、ForwardレンダリングとDeferredレンダリングの違いを自分なりに軽くまとめてみました。

Forwardレンダリング

Forwardレンダリングでは、基本的に以下のようにレンダリングが実行されます。

image.png

オブジェクトごとにライティング計算が実行されます。

Deferredレンダリング

Deferredレンダリングでは、基本的に以下のようにレンダリングが実行されます。

image.png

スクリーン上の必要なピクセルのみにライティング計算が実行されます。

ForwardとDeferredの比較

Forwardレンダリングではオブジェクトごとにライティング計算が実行されます。

それに対してDeferredレンダリングでは、スクリーン上のピクセルに対してライティング計算が実行されます。
そのため、DeferredレンダリングではForwardと比較してピクセルシェーダーの負荷が軽くなります。

補足

G-Buffer

G-Bufferは、深度情報(Z値)、アルベド値、スペキュラ値、法線情報などのことを指します。
DeferredレンダリングではG-Bufferを使ってZテストやライティング計算が行われます。

UnityではBuiltinRenderTextureType.GBuffer0あたりを参照するとG-Bufferをとってくることができます。

参考URL

なぜなにリアルタイムレンダリング
https://www.slideshare.net/SatoshiKodaira/ss-69311865

西川善司の3Dゲームファンのための「KILLZONE 2」グラフィックス講座(前編)
PS3のハイクオリティグラフィックスはDeferred Shadingでキマリ!?
http://game.watch.impress.co.jp/docs/series/3dcg/125909.html

THE RENDERING TECHNOLOGY OF KILLZONE 2
https://www.guerrilla-games.com/read/the-rendering-technology-of-killzone-2

レンダリングパス
https://docs.unity3d.com/jp/540/Manual/RenderingPaths.html

Forward vs Deferred vs Forward+ Rendering with DirectX 11
https://www.3dgep.com/forward-plus/

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
55