「遅延レンダリング」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
7行目: 7行目:
 
  ドローコール数 = モデル数 x ライト数
 
  ドローコール数 = モデル数 x ライト数
  
一方、遅延レンダリングでは以下のような感じになる。
+
一方、遅延レンダリングでは以下のような感じになる。ちなみに「x3」の部分は[[マルチプルレンダーターゲット]]を利用すれば「x1」にすることができる。
 
  ドローコール数 = 初期化x3 + モデル数x3 + ライト数
 
  ドローコール数 = 初期化x3 + モデル数x3 + ライト数
  
75行目: 75行目:
 
===4. Combine===
 
===4. Combine===
 
GBufferとライティング結果を合成して最終的な絵が完成する。
 
GBufferとライティング結果を合成して最終的な絵が完成する。
 +
 +
== 関連項目 ==
 +
* [[フォワードレンダリン]]
 +
* [[遅延レンダリング]]
 +
* [[ライトプレパス]]
 +
* [[MonoGameで遅延レンダリングをする]]
 +
 +
[[category: 3DCG]]

2020年4月8日 (水) 05:26時点における版

遅延レンダリング英語:Deferred Rendering)とは、3DCGにおいて、物体の描画とライティングを別々に行う技法である。こいつの登場により従来型のレンダリングは「フォワードレンダリング」と呼ばれるようになった。

概要

遅延レンダリングではシーンの中にポイントライトなどを多数配置してもドローコールが増えないという特徴がある。

フォワードレンダリングでのドローコール数は以下のようなモデルとライトの掛け算である。

ドローコール数 = モデル数 x ライト数

一方、遅延レンダリングでは以下のような感じになる。ちなみに「x3」の部分はマルチプルレンダーターゲットを利用すれば「x1」にすることができる。

ドローコール数 = 初期化x3 + モデル数x3 + ライト数

太陽光など平行光源が1個しかない状況ではフォワードレンダリングの方が有利だが、街灯などのポイントライトが何個もある状況では遅延レンダリングの方が有利である。

モデル数 ライト数 フォワード デファード
1 1 1 7
10 1 10 34
10 2 20 35
10 4 40 37
10 8 80 41
10 16 160 49
10 32 320 65
10 64 640 97


2000年代中頃あたりに夜中に作戦行動する右下から銃の生えたゲームで大流行した。

手順

1. Clear GBuffer

Color, Normal, Depthなどからなる「GBuffer」を初期化する。

2. Draw GBuffer

GBufferに描画する。この時点ではまだライティングは行わない。描画時にライティングを行わないから「遅延レンダリング」という。

3. Lighting

GBufferと各種ライトを掛け合わせて「ライティング結果」を生成する。

4. Combine

GBufferとライティング結果を合成して最終的な絵が完成する。

関連項目