Global Transparency for sprite shader

Usually when we have transparency in a shader we ensure that it shows everything behind it, thus performing correctly. But what I want is a shader that works like this: All objects that uses this specific shader share the same transparency.

Let’s say I have rings that overlap that are completely white with alpha=0.5 on a black background. I would want to go from what we see to the left in the following image to what we see to the right.


Hereby I would be able to make transparent objects seem like they were a part of a great object, instead of on top of one another.

The intention is to use it together with the built in sprite shader.

Can anybody provide me with a way to achieve this?

Any suggestions would be helpful, I would like to stay away from using an extra camera and a render texture.
I guess this could be achieved through a grab pass as well, but I just think there’s a simpler way.

Last note: I’m currently working in the 4.6 beta, and thus would like to see the solution working for Unity Free. If you have the solution, providing what general devices the solution works for would be appreciated as well.

*The built in sprite shader:
ripple - *

Same Issue as seen here:

It is not possible without rewriting the rendering engine.