Shaders: Overwrite something?

So I have a very neat-looking shader that is transparent, so it provides a sort of overlay to anything behind it. But I want certain surfaces in my game to not only display a texture on their surface, but also to completely remove the overlay effect.

Consider it like the Lens of Truth from the N64 Zeldas, if you’ve ever played it. Secret items have an invisibility effect on them, but while using the Lens of Truth, the invisibility effect doesn’t work inside the circle, though outside the edges of the circle the items are still invisible.

What sort of properties about shaders should I be applying? Any point in the right direction would be greatly appreciated.

one of possible solutions:

  1. create a custom shader for ‘secret’ items
  2. make this shader get a visible screen-oriented mask (can be a texture with offset, alpha-cutoff value…)
  3. after computing a screen-oriented position in shader just compare it with a mask parameters and clip pixels if it’s invisible

done 8)