Here’s with a more complex scene.
Not sure what you mean by “It’d be a better test if the input was actually randomly sampled from halton sequence/whatever.”. Part of the reason it works is because I select what pixels to keep. For AHR I’ll select based on the GBuffer.
Also, here’s the exe I used to make that images. It expects a file called “tex.bmp” to be placed on the same folder as the executable. Then you need to input two sparsity parameters, one for the edges and the other for uniform noise, after that it shows the reconstructed image and number of culled pixels.
By pressing “I” and “O” you can see either the culled image, or the error.
It’s single threaded, cpu based and not optimized at all, so ignore performance (it takes a second at most though).
If you could try it I would love to see what results you get!
About the edges, i’m 97.758% sure it’s an implementation error, and not an error on the algorithm itself
PS: was meant mostly for the diffuse part, as I can get around with some approximation error there. As you said, it might be more problematic for specular, but will see how it works
PPS: Forgot the link to the exe https://drive.google.com/file/d/0B6A51p8LzEWYUTlLdDhWUU1zdk0/view?usp=sharing
PPPS: And the SDL DDL https://drive.google.com/file/d/0B6A51p8LzEWYR0Z3OEhKVlNPU3M/view?usp=sharing