How to make a circular rainbow effect? I've played Nier Gestalt and Beyond Two Souls games recently and noticed  that in both of them the circular/half-circular rainbow effect appears.






Could somebody tell me what is this effect called and how to achieve it in Blender? I know I can create it using transparent and color ramp nodes (like in here: How to make rainbow ends fade out), but how to make it physically acurate? This effect appears when you rotate camera out from the light source. The more you rotate from it, the more the effect appears.
This is a post effect as it occurs inside the lens. I have used a mask to create the ring, then added some noise from a cloud texture, this is distorted radially to make streaks (that you could animate). Then this is coloured with a fringe using the Projector node.

Make a single mask with 2 circle shapes on their own layers:


Layer one use Add function





Layer two use a Merge Subtract function





Make sure both layers are active, tick the eye buttons




Use this mask shape with a noise texture that is distorted with a radial blend texture using a UV map node:

 

Here's the blend file I created for this effect: 

UPDATE:
Here's the flare turned up to 11!
I duplicated the projector node for more color and added a ramp to the radial blend so that I could better control the stretch of the cloud texture.