2011-07-07 8 views
3

XNAの遅延レンダリングに関するチュートリアル(Catalin ZimaTheCansin)を読んだことがあります。彼らはすべて、モデルをレンダリングするために遅延レンダリングパイプラインを使用しているようです。これは素晴らしいことですが、通常マップとスペキュラマップのみを処理します。遅延レンダリング - 個々のエフェクトを使用したレンダリングモデル

考え方が正しいとすれば、たとえばグロー効果があるモデルをレンダリングしてグローシェーダがある場合、遅延レンダリングパイプラインはこのシェーダについて知りません。

上記の質問が正しい場合は、遅延レンダリングパイプラインでグローを使用してモデルをレンダリングし、グローシェーダで再レンダリングする必要がありますか?

答えて

3

本当にさまざまなアプローチがあります。私はあなたのパイプラインにマテリアルマスクパスを含めることをお勧めします。例:シーン内でレンダリングするサーフェスの種類ごとに単色のターゲットをレンダリングします。このマスクターゲットを使用して、最後の遅延照明パスで分岐操作を実行し、さまざまなマテリアル(たとえば、フォンシェーディングの場合はピュアレッド、マットサーフェスの場合はピュアブルーなど)のサーフェス計算を行います。拡散、法線、および鏡面gbufferパスは通常どおり使用します。

具体的にはグロー効果のために、マスクアプローチを使用して、そのターゲットを後処理ステップに進めて、フルスクリーンのぼかし/グローを実行し、マスクを使用してグローが適用されるべきオブジェクトを決定することもできます。

関連する問題