100000 rectangles.
(Continued from 50000 Rectangles #9.) After all of this, the results were underwhelming. Perhaps there was a bug, but I believe the results were accurate. Just not very exciting.
One problem I identified with my method came from using adjacent pixels to compute the normal. Shadows were one pixel wide. The same scene looked different at different resolution. Higher resolution meant thinner shadows. Also at different resolutions, the adjacent pixels are different, so the surface normal calculation gives different results.
To solve this, I choose pixels a certain (resolution-independent) distance from the target pixel to compute the normal. I also used a weighted average of pixels near that target distance rather than a single pixel.