It's done as a sprite. I clear the backbuffer and then send the texture to a sprite function. This in turn modifies a quad and "renders" (as prep for shader) and then the a simple texture shader renders the quad with the texture applied. The whole DX11 render process is still a little fuzzy to me, but the problem is not actually in the post bloom shader function because I can take the original RTT and show it on the screen (without bloom) and the problem will still be there. So it must be something with the RTT itself.
without bloom:
-clear the back buffer and z-buffer(depth stencil)
-render the solids
-render the instanced billboards
-present the backbuffer(swap chain)
with bloom:
-set RTT as render target
-clear texture and z-buffer
-render solids
-render the instanced billboards
-do the bloom. This involves:
- H-blur, V-blur, and brightening. Each is a down-scaled RTT from the screen dimensions
- Up-scale image (same as screen dimensions)
- combine the up-scale and the original RTT for a final output texture
-set backbuffer as render target
-clear backbuffer and z-buffer
-render the bloom output image as a full-screen sprite(no transparency)
-present the back buffer(swap chain)
Even if I take out the "bloom" part of the process, the original image still has the problem (until I implemented the above solution).
If you know a single blend state solution to my problem, please show me.