You're right I could do that in a fullscreen quad post effect pass however as I'm working on a Forward+ renderer right now this isn't as straightforward (performance wise) as with a regular deferred one. I was just curious of the result of his technique and it seemed like a very performant approach.
However after reading your first post, I'm still not quite sure how this reflectedCamera is obtained. I've tried reflecting my camera position by a mirror plane (0, 1, 0) in world space but the result doesn't seem to work. Does this have to be the actual camera that I'm moving around or the cubemap face's ? Could you explain a bit more what you mean by "adjust all possible view vectors, so that you get the corrected vectors for the cubemap sampling" ?
By the way do you guys know of any good way to do the local cubemap blending in a forward renderer ? I've been reading up on some articles but have only come to the conclusion that it's really crappy if you're not doing your lighting deferred...
Unfortunately I can't upload a video here because of my crappy internet line but I exported screenshots from RenderDoc showcasing it using the 8x8x8 with different densities each.
Note: Seems like it doesn't gamma correct when exporting that's why they look so dark here.
First 8 sample pass (Density = 1.0):
Second 8 sample pass (Density = 0.5):
Final 8 sample pass Density = 0.25):
If I multiply the final color by 0.2 or so it doesn't look as overblown but the sky completely fades to black which is not what I want...
The best quality/performance result I've gotten at this point is downsample to 1/2 using a wide gaussian blur then scatter using ~96 samples and upsample again using wide gaussian. Runs at about 1.8ms on my AMD Radeon 5750M. However the result is obviously a little blurry and not as tight as pure 128 samples in full res.
@kalle_h I'm not very familiar with using the jittering you describe. How is this done ? Multiply the Density by some random 2D vector ?
Or could I use a different step size every frame and combine these ?