This is not purely a shader effect, you would have to implement this as a feature on the engine level. For best results anyways. You can also check out the VisualServer and see if you can't figure out something by poking around a slightly lower level.
But honestly, if you even need to ask here then this is probably a bit too big of a task for you as of now.