そのため、Direct3D の後処理を実装しようとしていますが、テクスチャへのレンダリングに問題があります。基本的に、私のプログラムは次のようになります。
// Render scene to "scene_texture" (an HDR texture)...
...
device->SetRenderTarget(0, brightpass_surface);
device->SetTexture(0, scene_texture);
// Render "scene_texture" to "brightpass_texture" using full-screen quad.
// This involves passing the quad geometry through a brightpass shader.
...
device->SetRenderTarget(0, ldr_surface);
device->SetTexture(0, brightpass_texture);
// Render "brightpass_texture" to "ldr_surface" using full-screen quad...
かなりの量のコードがあるため、いくつかの部分を省略しました(一般的なアイデアを理解しようとしているだけです)。残念ながら、上記の結果は空白の画面になります。これが私がしたいことです:
- シーンをテクスチャ (HDR) にレンダリングする
- ブライトパス シェーダーを介して、そのテクスチャを 2 番目のテクスチャにレンダリングします。
- 2 番目のテクスチャを可視 LDR サーフェスにレンダリングする
上記の最後の行を
device->SetTexture(0, brightpass_texture);
に
device->SetTexture(0, scene_texture);
その後、すべてが機能します。ブライトパス シェーダーをスキップして、単純にピクセルを通過させてみましたが、どちらもうまくいきません。