#define lowp
#define mediump
#define highp
#line 0
attribute highp vec4 attr_pos;
attribute lowp vec3 attr_normal;
attribute lowp vec3 attr_color;

uniform highp mat4 uni_mvp;

varying lowp vec3 vary_color;

void main (void) {
	vec3 sun_dir = normalize (vec3 (1.0, 1.0, 4.0));
	
	vec3 sun_light = vec3 (1.0, 0.75, 0.5) * sqrt (max (0.0, dot (attr_normal, sun_dir)));
	vec3 sky_light = vec3 (0.0, 0.25, 0.5) * (attr_normal.z * 0.5 + 0.5);
	
	vary_color = sqrt (attr_color * (sun_light + sky_light));
	gl_Position = uni_mvp * attr_pos;
}
