X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=shaders%2Fscene_vertex_blend.h;h=7cc9102706ad5219e5dcf1ddfd378e8218d829cb;hb=53b534974303043efaf1d887711fcd349f6a2885;hp=672d154f5d1b2233a7ad2006f56f03876101f378;hpb=63fe317d7db724162561da52aa382c82ac3c29be;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/shaders/scene_vertex_blend.h b/shaders/scene_vertex_blend.h index 672d154..7cc9102 100644 --- a/shaders/scene_vertex_blend.h +++ b/shaders/scene_vertex_blend.h @@ -68,6 +68,11 @@ static struct vg_shader _shader_scene_vertex_blend = { "\n" "#line 1 1 \n" "// :D\n" +"const float CLEARSKIES_LIGHT_DOT_MIN = 0.0;\n" +"\n" +"#line 6 0 \n" +"#line 1 2 \n" +"// :D\n" "\n" "in vec2 aUv;\n" "in vec4 aNorm;\n" @@ -204,14 +209,18 @@ static struct vg_shader _shader_scene_vertex_blend = { " 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" @@ -223,8 +232,9 @@ static struct vg_shader _shader_scene_vertex_blend = { " 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" @@ -429,8 +439,8 @@ static struct vg_shader _shader_scene_vertex_blend = { " return world_compute_lighting( diffuse, normal, co, compute_board_shadow() );\n" "}\n" "\n" -"#line 6 0 \n" -"#line 1 2 \n" +"#line 7 0 \n" +"#line 1 3 \n" "const float k_motion_lerp_amount = 0.01;\n" "\n" "#line 2 0 \n" @@ -449,7 +459,7 @@ static struct vg_shader _shader_scene_vertex_blend = { " oMotionVec = (vmotion1-vmotion0) * (1.0/k_motion_lerp_amount);\n" "}\n" "\n" -"#line 7 0 \n" +"#line 8 0 \n" "\n" "void main()\n" "{\n"