Agreed, and this is what this code does well, right now. The fact that it also manages with GLSL 1.20 amazes me, because that means a direct portability across the board: OpenGL, WebGL, OGL ES.Having a 'custom noise done in GLSL code' makes your shader deterministic and more portable.
For me, the ideal situation would be to have a choice between a "shader noise", where you had complete control and perfect repeatability across platforms, and a ten times faster "hardware noise" that came at about the same cost as a texture lookup, to use for shaders with lots of noise components. In software shading, it is both common and useful to have dozens of noise components in a shader.
(Anybody from the Khronos GLSL workgroup reading this?)



