http://webglfundamentals.org/webgl/resources/webgl-3d-math.js