" aWorldCo = world_pos0;\n"
" aColour = a_colour;\n"
" aUv = a_uv;\n"
-" aNorm = mat3(uMdl) * a_norm;\n"
+" aNorm = normalize( mat3(uMdl) * a_norm );\n"
" aCo = a_co;\n"
"}\n"
""},
"in vec3 aWorldCo;\n"
"\n"
"#line 1 1 \n"
+"// :D\n"
+"const float CLEARSKIES_LIGHT_DOT_MIN = 0.0;\n"
+"\n"
+"#line 11 0 \n"
+"#line 1 2 \n"
"layout (location = 0) out vec4 oColour;\n"
"\n"
"// OpenGL wiki: Recommends do not use vec3 because of drivers. hence the v4s...\n"
" g_sunset_phase );\n"
"\n"
" vec3 sky_reflection = 0.5 * fresnel * reflect_colour;\n"
-" vec3 light_sun = max(0.0,dot(normal,g_sun_dir.xyz)*0.75+0.25) \n"
-" * g_sun_colour.rgb * g_day_phase;\n"
+" vec3 light_sun = max( CLEARSKIES_LIGHT_DOT_MIN, \n"
+" dot(normal,g_sun_dir.xyz)*0.75+0.25\n"
+" ) * g_sun_colour.rgb * g_day_phase;\n"
"\n"
" float scaled_shadow = max( shadow, 1.0 - max(g_sun_dir.y,0.0) );\n"
" vec3 ambient = mix( g_ambient_colour.rgb, g_sunset_ambient.rgb, \n"
" return scene_apply_fog( diffuse * total_light, fog_colour, fdist );\n"
"}\n"
"\n"
-"#line 11 0 \n"
-"#line 1 2 \n"
+"#line 12 0 \n"
+"#line 1 3 \n"
"const float k_motion_lerp_amount = 0.01;\n"
"\n"
"#line 2 0 \n"
" oMotionVec = (vmotion1-vmotion0) * (1.0/k_motion_lerp_amount);\n"
"}\n"
"\n"
-"#line 12 0 \n"
-"#line 1 3 \n"
+"#line 13 0 \n"
+"#line 1 4 \n"
"uniform sampler2D uTexSceneDepth;\n"
"uniform vec3 uInverseRatioDepth;\n"
"uniform vec3 uInverseRatioMain;\n"
" }\n"
"}\n"
"\n"
-"#line 13 0 \n"
+"#line 14 0 \n"
"\n"
"vec3 character_clearskies_lighting( vec3 normal, float shadow, vec3 halfview )\n"
"{\n"