analytical-ish solution for grid visibility on the left, pathtracing at 32 samples per pixel on the right
I don't know basic linear algebra so the analytical solution is bugged and I've never been able to write an unbiased pathtracer so there are differences in the outputs, an unbugged version should be mostly identical.
The analytical solution should be equivalent to firing infinite rays while having much better scaling. It's O(N^2 * sqrt(2N^2))
where N is the side length of your grid instead of O(M * N^2 * sqrt(2N^2))
Where M is the number of rays per pixel
raytraced occlusion checks: 2002938325 analytical occlusion checks: 11812361 raytraced high resolution clock time: 5.911035111 seconds analytical high resolution clock time: 0.027131559 seconds (~220x faster)