 // Alpha to use when generating colors.
 uniform float alpha;
 
+vec2 hashConst = vec2(12.9898, 78.233);
+
 // Noise functions
 float hash(vec2 co) {
-	return fract(sin(dot(co, vec2(12.9898, 78.233))) * 43758.5453);
+	return fract(sin(dot(co, hashConst)) * 43758.5453);
 }
 
 float hash(float x, float y) {


	// Red (top)
	r = fbm2(co * vec2(1.0, 0.5), 1);
	d = pnoise(2.0 * co + vec2(0.3 * time), 1);
	rc = topColor.xyz * r * smoothstep(0.0, 2.5 + d * r, co.y)
			* smoothstep(-5.0, 1.0, 5.0 - co.y - 2.0 * d);


	vec3 col = vec3(0.0);

	// Aurora (with some transformation)
	float f = 0.15 * pnoise1(vec2(5.0 * uv.x, 0.3 * time));
	vec2 aco = co;
	aco.y -= f;  // This affects height of rendering
	// aco *= 10.0 * uv.x + 5.0;
	aco *= 10.0 * uv.x + 20.0;
	col += 0.5 * lights(aco)
			* (smoothstep(0.3, 0.6, pnoise1(vec2(10.0 * uv.x, 0.3 * time)))
					+ 0.5
							* smoothstep(0.5, 0.7,
									pnoise1(vec2(10.0 * uv.x, time))));

	// Need to tweak the alpha at the edges so they fade rather than end
	// abruptly at the edge of the quad.  Because of how the alpha channel
