Ugh. I've been working on this for almost a week. But I think it's finally working now.
View attachment 37526
That's a screen-space effect on the meshes' material. It was a huge pain to implement. I had the principle figured out in a day or so. But then I had to test with windowed/full-screen, different aspect ratios, and different resolutions. I have no idea why, but on one iteration, it would be the right shape and position when starting the game, and then when I change resolution, it stays the right shape and position, but then when I change the resolution back, then it was messed up. Then I realized that with the hole staying one size (in screen space), then the hole is too big when you zoom the camera out, and it's too small when you zoom the camera in. So I had to redo the whole effect with a mask that scales with the zoom.
And just watch: Now I'll probably get a bunch of bug reports from my players saying it's not working on their machines.