• 追加された行はこの色です。
  • 削除された行はこの色です。
*エフェクト-Deferred Rendering [#b1e0c0ef]
遅延レンダリング。
1パス目でモデルの法線などの情報のみをMRTで別バッファに書き出し、2パス目はそれらのテクスチャを使用しシェーディングする。

2パス目は画面をfillするだけなので、不必要なライティング計算が必要なくなる。
ライト計算の負荷は一定数ずつ増えるので、処理負荷を見積もりやすい。
また、MRTで書き出した情報があるので、それらを使用したエフェクトが掛けやすい。
----

#contents


** 描画パス [#x27ff561]
1.1パス目:それぞれ必要な情報をMRTを使用し書き出す。
アルベド、法線、深度、スペキュラ、ベロシティなど。
必要によってはfloatテクスチャを使用する。

 ・アルベド(ディフューズ)
 &ref(deferred-pass1_diffuse.JPG,,40%);

 ・法線
 &ref(deferred-pass1_normal.JPG,,40%);

 ・深度
 &ref(deferred-pass1_depth.JPG,,40%);


2.1パス目で出力したテクスチャの情報からライト計算などシェーディングする。

 ・シェーディング結果
 &ref(deferred-deferred_shading.JPG,,40%);


** 参考 [#pafa26d9]
ライト計算の1pxに1回になるので、処理負荷を見積もりやすい。
ライト計算が1pxに1回になるので、無駄な処理がなく負荷を見積もりやすい。
また、通常のシェーディングよりも軽くなる。

ライトを100灯焚いてみても環境によっては処理落ちしなかったり、30fpsをキープできていた。
&ref(deferred-pointlight.JPG,,40%);


 
** シェーダコード [#j1521515]
1パス目:&ref(deferred_shading.fx);
 floatテクスチャに出力。
 MRT0 - ディフューズカラー
 MRT1 - 法線
 MRT2 - 座標(2パス目のポイントライト計算用)

2パス目:&ref(deferred_screen.fx);
 ついでにポイントライト100灯計算込み。


    ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS