// Composite the cosines together.
// Input map is cosine(pix) for each of
// the 4 waves.
//
// The constants are set up so:
//		Nx = -freq * amp * dirX * cos(pix);
//		Ny = -freq * amp * dirY * cos(pix);
//	So c[i].x = -freq[i] * amp[i] * dirX[i]
//	etc.
// All textures are:
//		(r,g,b,a) = (cos(), cos(), 1, 1)
//
// Here all c[i].z = 0, because we're accumulating ontop
// of layers that have been primed with z = 1.
// Note also the c4 used for biasing back at the end.

ps.1.1

tex		t0;
tex		t1;
tex		t2;
tex		t3;

mul		r0, t0_bx2, c0;
mad		r0, t1_bx2, c1, r0;
mad		r0, t2_bx2, c2, r0;
mad		r0, t3_bx2, c3, r0;

// Now bias it back into range [0..1] for output.
mul		r0.rgb, r0, c4;
+mov	r0.a, c4;
add		r0.rgb, r0, c5;
//mov		r0, c4;