 
 vec3 shade(vec3 point, vec3 normal, vec3 rayOrigin, vec3 rayDirection, float t)
 { 
-	vec3 lightPosition = vec3(0.0, 300.0, 1024.0);
+	vec3 lightPosition = vec3(1024.0, 155.0, 2024.0);
 
 	float steepness = saturate(pow(abs(normal.y), 10.0));
 	float snow = saturate(smoothstep(150.0 * (1.0 - steepness), 250.0, point.y));


	float diffuse = saturate(cosTheta) * .7;
	float ambient = .04f + rim * .075 + saturate(-cosTheta) * .03;
	float specular = pow(saturate(dot(refl, lightDirection)), 2.0) * (1.0 - steepness) * .3 * diffuse;

	vec3 amb = vec3(.2, .5, .9);
	vec3 terrainColor = vec3(.25, .3, .08) * .05;
	terrainColor = mix(vec3(.1, .05, 0) * .03, terrainColor, steepness);	
	terrainColor = mix(terrainColor, vec3(.8, .8, 1.0) * .1, snow);

	vec3 lightColor = vec3(1.25, 1.2, .9);

	vec3 shadow = mix(vec3(.1, .35, .9), vec3(1.0), 1.0 - shadows(point, lightPosition));

	vec3 outColor = terrainColor * diffuse * 30.0 + amb * specular + amb * ambient;

	return mix(outColor, amb, saturate(-.175 + t / 2000.0)) * shadow;
}

// SHADOW PARAMETERS
#define SHADOW_ITERATIONS 100
#define SHADOW_SOFT_FACTOR 20.0
#define SHADOW_EPSILON .5
#define SHADOW_OFFSET 10.0

#define SHADOWS
  
