X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=shaders%2Fmodel_sky_space.h;h=83095509f465aec8ae190b6966ef5fb4230d03a1;hb=38514b4ba03412ad51df02dc2ba345e1be41005d;hp=72511960236728b05d9f4c5f2bf47a8b4f65221b;hpb=63fe317d7db724162561da52aa382c82ac3c29be;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/shaders/model_sky_space.h b/shaders/model_sky_space.h index 7251196..8309550 100644 --- a/shaders/model_sky_space.h +++ b/shaders/model_sky_space.h @@ -78,6 +78,11 @@ static struct vg_shader _shader_model_sky_space = { "const vec3 uCamera = vec3(0.0);\n" "\n" "#line 1 1 \n" +"// :D\n" +"const float CLEARSKIES_LIGHT_DOT_MIN = 0.0;\n" +"\n" +"#line 13 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" @@ -207,14 +212,18 @@ static struct vg_shader _shader_model_sky_space = { " vec3 sun_colour = mix( vec3(1.0), g_sunset_colour.rgb, g_sunset_phase*0.5 );\n" " sun_colour *= sun_shape;\n" "\n" -"\n" +" \n" " float star = 0.0;\n" -" for( float j = 1.0; j <= 4.1; j += 1.0 ){\n" -" float m = mix(0.6, 0.9, smoothstep(1.0, 2.0, j));\n" -" star += stars( ray_dir, 1.94 * pow( 1.64, j ), m ) * (1.0 / pow(4.0, j));\n" +" float star_blend = 10.0*max(0.0,(1.0-g_day_phase*2.0));\n" +"\n" +" if( star_blend > 0.001 ){\n" +" for( float j = 1.0; j <= 4.1; j += 1.0 ){\n" +" float m = mix(0.6, 0.9, smoothstep(1.0, 2.0, j));\n" +" star += stars( ray_dir, 1.94 * pow( 1.64, j ), m ) * (1.0/pow(4.0, j));\n" +" }\n" " }\n" " \n" -" vec3 composite = sky_colour + sun_colour + star*10.0*max(0.0,(1.0-g_day_phase*2.0));\n" +" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" " return composite;\n" "}\n" "\n" @@ -226,8 +235,9 @@ static struct vg_shader _shader_model_sky_space = { " 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" @@ -405,8 +415,8 @@ static struct vg_shader _shader_model_sky_space = { " return scene_apply_fog( diffuse * total_light, fog_colour, fdist );\n" "}\n" "\n" -"#line 13 0 \n" -"#line 1 2 \n" +"#line 14 0 \n" +"#line 1 3 \n" "const float k_motion_lerp_amount = 0.01;\n" "\n" "#line 2 0 \n" @@ -425,7 +435,7 @@ static struct vg_shader _shader_model_sky_space = { " oMotionVec = (vmotion1-vmotion0) * (1.0/k_motion_lerp_amount);\n" "}\n" "\n" -"#line 14 0 \n" +"#line 15 0 \n" "\n" "float stars1( vec3 rd, float rr, float size ){\n" " vec3 co = rd * rr;\n"