This is an interactive WebGL version of Sample 4 from Chapter 2 of Telea, A. C., Data Visualization: Principles and Practice, second edition, CRC Press, September 2014.
We move the lighting calculation to the fragment shader to get normal interpolation (Phong shading) instead of colour interpolation (Gouraud shading).
Mouse control: orbit - left button, zoom - middle button, pan - right button.