noise() in GLSL isn't implemented on most cards (only crazy high end 3dlabs cards IIRC), so it'll always return 0. Theres various replacement functions floating around the net you might want to try as a replacement, or maybe just go with a 2d texture if you can live with 2d noise. If your cloud shader is heavy on calculations then a texture based noise would probably be quicker as you can hide the lookup latency between the arithmetic instructions.
So in the end , in your opinion which is the better way (faster ) to develope a cloud shader : prepassing a texture or implementing a noise() function inside the shader???