Implemented reflection, where the skybox texture was used as a render texture to show the reflective properties of water.
Implemented refraction by using a render target of the entity to be refracted. Bent the normals of the entities, with respect to the camera, to display that the entity is underwater. The entities to be refracted are drawn before the water.
Extracted all the “ghosts” in the scene, aka, the brightest spots. Created a threshold to get only the brightest lights in the scene. Rendered the ghosts on a different render target and applied radially sampled 1d texture. Blurred the result. Thus, implemented lens flare. Referred from http://john-chapman-graphics.blogspot.com/2013/02/pseudo-lens-flare.html