It often helps to render particle sprites as sphere. One it helps to reduces the polygonization which would otherwise be needed and second it too simple to achieve. So without any delay lets see how to put it up in OpenGL3.3. Geometry setup: We store positions of 9 vertices in the global scope as follows.
The fragment shader calculates the normal from the texture coordinates and then calculates the diffuse contribution. The texture coordinates in case of point sprites are available in the gl_PointCoord variable.