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

提供:MonoBook
ページの作成:「'''遅延レンダリング'''(英語:Deferred Rendering)とは、3DCGにおいて、物体の描画とライティングを別々に行う技法である…」
 
編集の要約なし
1行目: 1行目:
'''遅延レンダリング'''([[英語]]:Deferred Rendering)とは、[[3DCG]]において、物体の描画とライティングを別々に行う技法である。こいつの登場により従来型のレンダリングは「[[フォワードレンダリング]]」と呼ばれるようになった。
'''遅延レンダリング'''([[英語]]:Deferred Rendering)とは、[[3DCG]]において、物体の描画とライティングを別々に行う技法である。こいつの登場により従来型のレンダリングは「[[フォワードレンダリング]]」と呼ばれるようになった。


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


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


太陽光など[[平行光源]]が1個しかない状況では[[フォワードレンダリング]]の方が有利だが、
太陽光など[[平行光源]]が1個しかない状況では[[フォワードレンダリング]]の方が有利だが、街灯などの[[ポイントライト]]が何個もある状況では遅延レンダリングの方が有利である。
街頭などの[[ポイントライト]]が何個もある状況では遅延レンダリングの方が有利である。
{| class="wikitable"
|+
|'''モデル数'''
|'''ライト数'''
|'''フォワード'''
|'''デファード'''
|-
|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年代中頃あたりに夜中に作戦行動する[[右下から銃の生えたゲーム]]で大流行した。
2000年代中頃あたりに夜中に作戦行動する[[右下から銃の生えたゲーム]]で大流行した。


== 手順 ==
==手順==


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


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


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


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

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

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

概要

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

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

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

一方、遅延レンダリングでは以下のような感じになる。

ドローコール数 = 初期化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とライティング結果を合成して最終的な絵が完成する。