How can I render a semi-transparent texture with a hole in it?

I’m looking for a way to render a full screen overlay that darkens out the screen apart from a circle in the center. Ideally I’d be able to change the position and radius of the hole via code so I can accentuate different elements on the scene (this is all needed for a tutorial).
I’ve looked into cutout shaders and masking but I’m a bit lost - basically I need a shader that doesn’t render pixels that fall inside a certain circle?
Any thoughts on how I can achieve this?


Here’s an example of what I’m trying to achieve: alt text

Take a look at the screen transition in this gif.

This is done using a large mesh created in a 3D modelling application. You could of course, use a material that supports transparency, and make your mesh have a circular whole in it. You can position the mesh, and scale it to get the desired radius.

Just a minor detail, if this is to be used on mobile devices, it’s expensive to render a large transparent plane over top of the rest of your scene, an issue with weaker mobile devices fillrate.