Over at UralDev, they have a great tutorial (in Russian) using OpenGL and some rather complex shaders to create more realistic glass in realtime, complete with reflections, refractions, shadows, and caustic effects.

With the help of modern graphics cards can get more complex dynamic scenes.  This means that high-quality (photorealistic) rendering carried out offline in real time.  In particular, one of the pressing problems of computer graphics is the calculation and rendering of global illumination and complex materials.  In this article I would like to talk about the modeling of glass objects.  Glass is quite complicated to model material, when the goal is to get the most realistic image.  In this article we shall analyze together with you step through the process of modeling and rendering of glass objects.

Google Translate.