http://nehe.gamedev.net/article/glsl_an_introduction/25007/
http://www.linuxgraphics.cn/opengl/shader_overview.html#fn.1