Well, did some more black magic with the normal interpolation trick, and managed to reduce one direction.
As I’m tracing one ray per direction, translates to 1 less ray traced (just 4 now) and two less blurs. That’s like a 1.1 ms save (0.36 ms for tracing and 0.72 for the two passes blur. Funny fact, tracing a ray takes the same time as blurring the texture) on my 970 at (around) 1080p, but on lower end gpus should help even more.
Quality is about the same (at least I can’t really tell the difference).
Hope I didn’t broke anything in the process though, have the feeling something might be off… Maybe not. Anyway, try it guys.
Next update will be temporal filtering. Currently i’m using UE temporal filter, but as that runs after my stages, it runs after the blur. Will add a temporal filtering stage that runs before the blur. Should help reduce artifacts. Also, some flickering in the reflections is caused cause UE moves the textures 1 pixel on different frames to get the temporal aa, but that’s designed to run at full res, and cause I’m tracing at half res, it doesn’t really works. The half res temporal filter should fix that. Also have a few ideas for the reflections upsampling, but that’s for another day ;D