Top > エフェクト-Deferred Rendering

エフェクト-Deferred Rendering

遅延レンダリング
1パス目でモデルの法線などの情報のみをMRTで別バッファに書き出し、2パス目はそれらのテクスチャを使用しシェーディングする。

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


描画パス

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

 ・アルベド(ディフューズ)
 deferred-pass1_diffuse.JPG

 ・法線
 deferred-pass1_normal.JPG

 ・深度
 deferred-pass1_depth.JPG

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

 ・シェーディング結果
 deferred-deferred_shading.JPG

参考

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

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

シェーダコード

1パス目:filedeferred_shading.fx
 floatテクスチャに出力。
 MRT0 - ディフューズカラー
 MRT1 - 法線
 MRT2 - 座標(2パス目のポイントライト計算用)

2パス目:filedeferred_screen.fx
 ついでにポイントライト100灯計算込み。


添付ファイル: filedeferred_screen.fx 558件 [詳細] filedeferred_shading.fx 530件 [詳細] filedeferred-pointlight.JPG 666件 [詳細] filedeferred-pass1_normal.JPG 572件 [詳細] filedeferred-pass1_diffuse.JPG 599件 [詳細] filedeferred-pass1_depth.JPG 558件 [詳細] filedeferred-deferred_shading.JPG 624件 [詳細]

リロード   新規 編集 凍結 差分 添付 複製 名前変更   ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: 2011-08-16 (火) 02:00:26 (4637d)