From: hgn Date: Wed, 28 Feb 2024 14:00:30 +0000 (+0000) Subject: graphics changes X-Git-Url: https://harrygodden.com/git/?p=carveJwlIkooP6JGAAIwe30JlM.git;a=commitdiff_plain;h=25c2e032930910c469e9f5278b8001b93f1a140a graphics changes --- diff --git a/ent_npc.c b/ent_npc.c index 774edff..d431223 100644 --- a/ent_npc.c +++ b/ent_npc.c @@ -129,6 +129,20 @@ void ent_npc_call( world_instance *world, ent_call *call ) gui_helper_clear(); } } + else if( npc->id == 4 ) + { + if( call->function == 0 ) + { + gui_helper_clear(); + vg_str text; + if( gui_new_helper( input_button_list[k_srbind_camera], &text )) + vg_strcat( &text, "First/Thirdperson" ); + } + else if( call->function == -1 ) + { + gui_helper_clear(); + } + } else { if( call->function == 0 ) @@ -205,6 +219,7 @@ void ent_npc_preupdate( ent_npc *ent, int active ) void npc_update( ent_npc *ent ) { if( ent->id == 3 ) return; + if( ent->id == 4 ) return; struct npc *npc_def = npc_resolve( ent->id ); VG_ASSERT( npc_def ); @@ -242,6 +257,7 @@ void npc_update( ent_npc *ent ) void npc_render( ent_npc *ent, world_instance *world, vg_camera *cam ) { if( ent->id == 3 ) return; + if( ent->id == 4 ) return; struct npc *npc_def = npc_resolve( ent->id ); VG_ASSERT( npc_def ); diff --git a/maps_src/dev_hub/main.mdl b/maps_src/dev_hub/main.mdl index bcd332b..d53cfe6 100644 Binary files a/maps_src/dev_hub/main.mdl and b/maps_src/dev_hub/main.mdl differ diff --git a/shaders/impl.c b/shaders/impl.c index 01e1b84..539bcb1 100644 --- a/shaders/impl.c +++ b/shaders/impl.c @@ -173,7 +173,7 @@ struct vg_shader _shader_scene_standard = { "\n" "float luminance( vec3 v )\n" "{\n" -" return dot( v, vec3(0.2126, 0.7152, 0.0722) );\n" +" return dot( v, vec3(0.2126, 0.7052, 0.0722) );\n" "}\n" "\n" "vec3 clearskies_ambient( vec3 dir )\n" @@ -187,7 +187,7 @@ struct vg_shader _shader_scene_standard = { " ambient += g_nightsky_colour.rgb * (1.0-g_day_phase);\n" " \n" " /* Add gradient */\n" -" ambient -= sky_gradient * luminance(ambient);\n" +" ambient -= sky_gradient * luminance(ambient)*1.6;\n" " \n" " return ambient;\n" "}\n" @@ -217,7 +217,7 @@ struct vg_shader _shader_scene_standard = { " }\n" " }\n" " \n" -" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" +" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" " return composite;\n" "}\n" "\n" @@ -664,7 +664,7 @@ struct vg_shader _shader_scene_standard_alphatest = { "\n" "float luminance( vec3 v )\n" "{\n" -" return dot( v, vec3(0.2126, 0.7152, 0.0722) );\n" +" return dot( v, vec3(0.2126, 0.7052, 0.0722) );\n" "}\n" "\n" "vec3 clearskies_ambient( vec3 dir )\n" @@ -678,7 +678,7 @@ struct vg_shader _shader_scene_standard_alphatest = { " ambient += g_nightsky_colour.rgb * (1.0-g_day_phase);\n" " \n" " /* Add gradient */\n" -" ambient -= sky_gradient * luminance(ambient);\n" +" ambient -= sky_gradient * luminance(ambient)*1.6;\n" " \n" " return ambient;\n" "}\n" @@ -708,7 +708,7 @@ struct vg_shader _shader_scene_standard_alphatest = { " }\n" " }\n" " \n" -" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" +" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" " return composite;\n" "}\n" "\n" @@ -1157,7 +1157,7 @@ struct vg_shader _shader_scene_foliage = { "\n" "float luminance( vec3 v )\n" "{\n" -" return dot( v, vec3(0.2126, 0.7152, 0.0722) );\n" +" return dot( v, vec3(0.2126, 0.7052, 0.0722) );\n" "}\n" "\n" "vec3 clearskies_ambient( vec3 dir )\n" @@ -1171,7 +1171,7 @@ struct vg_shader _shader_scene_foliage = { " ambient += g_nightsky_colour.rgb * (1.0-g_day_phase);\n" " \n" " /* Add gradient */\n" -" ambient -= sky_gradient * luminance(ambient);\n" +" ambient -= sky_gradient * luminance(ambient)*1.6;\n" " \n" " return ambient;\n" "}\n" @@ -1201,7 +1201,7 @@ struct vg_shader _shader_scene_foliage = { " }\n" " }\n" " \n" -" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" +" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" " return composite;\n" "}\n" "\n" @@ -1656,7 +1656,7 @@ struct vg_shader _shader_scene_override = { "\n" "float luminance( vec3 v )\n" "{\n" -" return dot( v, vec3(0.2126, 0.7152, 0.0722) );\n" +" return dot( v, vec3(0.2126, 0.7052, 0.0722) );\n" "}\n" "\n" "vec3 clearskies_ambient( vec3 dir )\n" @@ -1670,7 +1670,7 @@ struct vg_shader _shader_scene_override = { " ambient += g_nightsky_colour.rgb * (1.0-g_day_phase);\n" " \n" " /* Add gradient */\n" -" ambient -= sky_gradient * luminance(ambient);\n" +" ambient -= sky_gradient * luminance(ambient)*1.6;\n" " \n" " return ambient;\n" "}\n" @@ -1700,7 +1700,7 @@ struct vg_shader _shader_scene_override = { " }\n" " }\n" " \n" -" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" +" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" " return composite;\n" "}\n" "\n" @@ -2202,7 +2202,7 @@ struct vg_shader _shader_scene_fxglow = { "\n" "float luminance( vec3 v )\n" "{\n" -" return dot( v, vec3(0.2126, 0.7152, 0.0722) );\n" +" return dot( v, vec3(0.2126, 0.7052, 0.0722) );\n" "}\n" "\n" "vec3 clearskies_ambient( vec3 dir )\n" @@ -2216,7 +2216,7 @@ struct vg_shader _shader_scene_fxglow = { " ambient += g_nightsky_colour.rgb * (1.0-g_day_phase);\n" " \n" " /* Add gradient */\n" -" ambient -= sky_gradient * luminance(ambient);\n" +" ambient -= sky_gradient * luminance(ambient)*1.6;\n" " \n" " return ambient;\n" "}\n" @@ -2246,7 +2246,7 @@ struct vg_shader _shader_scene_fxglow = { " }\n" " }\n" " \n" -" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" +" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" " return composite;\n" "}\n" "\n" @@ -2687,7 +2687,7 @@ struct vg_shader _shader_scene_vertex_blend = { "\n" "float luminance( vec3 v )\n" "{\n" -" return dot( v, vec3(0.2126, 0.7152, 0.0722) );\n" +" return dot( v, vec3(0.2126, 0.7052, 0.0722) );\n" "}\n" "\n" "vec3 clearskies_ambient( vec3 dir )\n" @@ -2701,7 +2701,7 @@ struct vg_shader _shader_scene_vertex_blend = { " ambient += g_nightsky_colour.rgb * (1.0-g_day_phase);\n" " \n" " /* Add gradient */\n" -" ambient -= sky_gradient * luminance(ambient);\n" +" ambient -= sky_gradient * luminance(ambient)*1.6;\n" " \n" " return ambient;\n" "}\n" @@ -2731,7 +2731,7 @@ struct vg_shader _shader_scene_vertex_blend = { " }\n" " }\n" " \n" -" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" +" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" " return composite;\n" "}\n" "\n" @@ -3196,7 +3196,7 @@ struct vg_shader _shader_scene_terrain = { "\n" "float luminance( vec3 v )\n" "{\n" -" return dot( v, vec3(0.2126, 0.7152, 0.0722) );\n" +" return dot( v, vec3(0.2126, 0.7052, 0.0722) );\n" "}\n" "\n" "vec3 clearskies_ambient( vec3 dir )\n" @@ -3210,7 +3210,7 @@ struct vg_shader _shader_scene_terrain = { " ambient += g_nightsky_colour.rgb * (1.0-g_day_phase);\n" " \n" " /* Add gradient */\n" -" ambient -= sky_gradient * luminance(ambient);\n" +" ambient -= sky_gradient * luminance(ambient)*1.6;\n" " \n" " return ambient;\n" "}\n" @@ -3240,7 +3240,7 @@ struct vg_shader _shader_scene_terrain = { " }\n" " }\n" " \n" -" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" +" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" " return composite;\n" "}\n" "\n" @@ -3711,7 +3711,7 @@ struct vg_shader _shader_scene_route = { "\n" "float luminance( vec3 v )\n" "{\n" -" return dot( v, vec3(0.2126, 0.7152, 0.0722) );\n" +" return dot( v, vec3(0.2126, 0.7052, 0.0722) );\n" "}\n" "\n" "vec3 clearskies_ambient( vec3 dir )\n" @@ -3725,7 +3725,7 @@ struct vg_shader _shader_scene_route = { " ambient += g_nightsky_colour.rgb * (1.0-g_day_phase);\n" " \n" " /* Add gradient */\n" -" ambient -= sky_gradient * luminance(ambient);\n" +" ambient -= sky_gradient * luminance(ambient)*1.6;\n" " \n" " return ambient;\n" "}\n" @@ -3755,7 +3755,7 @@ struct vg_shader _shader_scene_route = { " }\n" " }\n" " \n" -" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" +" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" " return composite;\n" "}\n" "\n" @@ -4232,7 +4232,7 @@ struct vg_shader _shader_scene_depth = { "\n" "float luminance( vec3 v )\n" "{\n" -" return dot( v, vec3(0.2126, 0.7152, 0.0722) );\n" +" return dot( v, vec3(0.2126, 0.7052, 0.0722) );\n" "}\n" "\n" "vec3 clearskies_ambient( vec3 dir )\n" @@ -4246,7 +4246,7 @@ struct vg_shader _shader_scene_depth = { " ambient += g_nightsky_colour.rgb * (1.0-g_day_phase);\n" " \n" " /* Add gradient */\n" -" ambient -= sky_gradient * luminance(ambient);\n" +" ambient -= sky_gradient * luminance(ambient)*1.6;\n" " \n" " return ambient;\n" "}\n" @@ -4276,7 +4276,7 @@ struct vg_shader _shader_scene_depth = { " }\n" " }\n" " \n" -" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" +" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" " return composite;\n" "}\n" "\n" @@ -4704,7 +4704,7 @@ struct vg_shader _shader_scene_position = { "\n" "float luminance( vec3 v )\n" "{\n" -" return dot( v, vec3(0.2126, 0.7152, 0.0722) );\n" +" return dot( v, vec3(0.2126, 0.7052, 0.0722) );\n" "}\n" "\n" "vec3 clearskies_ambient( vec3 dir )\n" @@ -4718,7 +4718,7 @@ struct vg_shader _shader_scene_position = { " ambient += g_nightsky_colour.rgb * (1.0-g_day_phase);\n" " \n" " /* Add gradient */\n" -" ambient -= sky_gradient * luminance(ambient);\n" +" ambient -= sky_gradient * luminance(ambient)*1.6;\n" " \n" " return ambient;\n" "}\n" @@ -4748,7 +4748,7 @@ struct vg_shader _shader_scene_position = { " }\n" " }\n" " \n" -" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" +" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" " return composite;\n" "}\n" "\n" @@ -5168,7 +5168,7 @@ struct vg_shader _shader_scene_cubemapped = { "\n" "float luminance( vec3 v )\n" "{\n" -" return dot( v, vec3(0.2126, 0.7152, 0.0722) );\n" +" return dot( v, vec3(0.2126, 0.7052, 0.0722) );\n" "}\n" "\n" "vec3 clearskies_ambient( vec3 dir )\n" @@ -5182,7 +5182,7 @@ struct vg_shader _shader_scene_cubemapped = { " ambient += g_nightsky_colour.rgb * (1.0-g_day_phase);\n" " \n" " /* Add gradient */\n" -" ambient -= sky_gradient * luminance(ambient);\n" +" ambient -= sky_gradient * luminance(ambient)*1.6;\n" " \n" " return ambient;\n" "}\n" @@ -5212,7 +5212,7 @@ struct vg_shader _shader_scene_cubemapped = { " }\n" " }\n" " \n" -" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" +" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" " return composite;\n" "}\n" "\n" @@ -5675,7 +5675,7 @@ struct vg_shader _shader_scene_water = { "\n" "float luminance( vec3 v )\n" "{\n" -" return dot( v, vec3(0.2126, 0.7152, 0.0722) );\n" +" return dot( v, vec3(0.2126, 0.7052, 0.0722) );\n" "}\n" "\n" "vec3 clearskies_ambient( vec3 dir )\n" @@ -5689,7 +5689,7 @@ struct vg_shader _shader_scene_water = { " ambient += g_nightsky_colour.rgb * (1.0-g_day_phase);\n" " \n" " /* Add gradient */\n" -" ambient -= sky_gradient * luminance(ambient);\n" +" ambient -= sky_gradient * luminance(ambient)*1.6;\n" " \n" " return ambient;\n" "}\n" @@ -5719,7 +5719,7 @@ struct vg_shader _shader_scene_water = { " }\n" " }\n" " \n" -" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" +" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" " return composite;\n" "}\n" "\n" @@ -5961,7 +5961,7 @@ struct vg_shader _shader_scene_water = { "#line 18 0 \n" "\n" "vec4 water_surf( vec3 halfview, vec3 vnorm, float depthvalue, \n" -" vec4 beneath, vec4 above )\n" +" vec4 beneath, vec4 above, vec4 dudva )\n" "{\n" " vec3 surface_tint = mix(uShoreColour, uOceanColour, depthvalue);\n" "\n" @@ -5974,11 +5974,15 @@ struct vg_shader _shader_scene_water = { " // Depth \n" " float depthblend = pow( beneath.r, 0.8 );\n" "\n" -" // Composite\n" -" vec3 vsurface = mix(surface_tint, above.rgb, ffresnel );\n" -" //vsurface += spec;\n" +" // Foam\n" +" float fband = fract( aCo.z*0.02+uTime*0.1+depthvalue*10.0 );\n" +" fband = step( fband+dudva.a*0.8, 0.3 ) * max((1.0-depthvalue*4.0),0.0);\n" "\n" -" return vec4( vsurface,depthblend );\n" +" vec4 surf = mix( vec4(surface_tint,depthblend), \n" +" vec4(1.0,1.0,1.0,0.5), fband );\n" +" surf.rgb = scene_compute_lighting( surf.rgb, aNorm.xyz, aWorldCo );\n" +" surf.rgb = mix(surf.rgb, above.rgb, ffresnel );\n" +" return surf;\n" "}\n" "\n" "void main()\n" @@ -5999,10 +6003,6 @@ struct vg_shader _shader_scene_water = { " vec3 surfnorm = dudva.rgb + dudvb.rgb;\n" " surfnorm = normalize(vec3(0.0,1.0,0.0) + dudva.xyz*0.4 + dudvb.xyz*0.1);\n" " \n" -" // Foam\n" -" float fband = fract( aCo.z*0.02+uTime*0.1+depthvalue*10.0 );\n" -" fband = step( fband+dudva.a*0.8, 0.3 ) * max((1.0-depthvalue*4.0),0.0);\n" -"\n" " // Lighting\n" " vec3 halfview = -normalize( aCo-uCamera );\n" "\n" @@ -6014,10 +6014,10 @@ struct vg_shader _shader_scene_water = { " float fdist = pow(length( aCo.xz-uCamera.xz ) * 0.00047, 2.6);\n" "\n" " // Composite\n" -" vec4 vsurface = water_surf( halfview, surfnorm, depthvalue, beneath, above );\n" +" vec4 vsurface = water_surf( halfview, surfnorm, depthvalue, beneath, above, dudva );\n" " vsurface.a -= fdist;\n" -" oColour = mix( vsurface, vec4(1.0,1.0,1.0,0.5), fband );\n" -" oColour.rgb = scene_compute_lighting( oColour.rgb, aNorm.xyz, aWorldCo );\n" +"\n" +" oColour = vsurface;\n" "}\n" ""}, }; @@ -6220,7 +6220,7 @@ struct vg_shader _shader_scene_water_fast = { "\n" "float luminance( vec3 v )\n" "{\n" -" return dot( v, vec3(0.2126, 0.7152, 0.0722) );\n" +" return dot( v, vec3(0.2126, 0.7052, 0.0722) );\n" "}\n" "\n" "vec3 clearskies_ambient( vec3 dir )\n" @@ -6234,7 +6234,7 @@ struct vg_shader _shader_scene_water_fast = { " ambient += g_nightsky_colour.rgb * (1.0-g_day_phase);\n" " \n" " /* Add gradient */\n" -" ambient -= sky_gradient * luminance(ambient);\n" +" ambient -= sky_gradient * luminance(ambient)*1.6;\n" " \n" " return ambient;\n" "}\n" @@ -6264,7 +6264,7 @@ struct vg_shader _shader_scene_water_fast = { " }\n" " }\n" " \n" -" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" +" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" " return composite;\n" "}\n" "\n" @@ -6761,7 +6761,7 @@ struct vg_shader _shader_scene_scoretext = { "\n" "float luminance( vec3 v )\n" "{\n" -" return dot( v, vec3(0.2126, 0.7152, 0.0722) );\n" +" return dot( v, vec3(0.2126, 0.7052, 0.0722) );\n" "}\n" "\n" "vec3 clearskies_ambient( vec3 dir )\n" @@ -6775,7 +6775,7 @@ struct vg_shader _shader_scene_scoretext = { " ambient += g_nightsky_colour.rgb * (1.0-g_day_phase);\n" " \n" " /* Add gradient */\n" -" ambient -= sky_gradient * luminance(ambient);\n" +" ambient -= sky_gradient * luminance(ambient)*1.6;\n" " \n" " return ambient;\n" "}\n" @@ -6805,7 +6805,7 @@ struct vg_shader _shader_scene_scoretext = { " }\n" " }\n" " \n" -" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" +" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" " return composite;\n" "}\n" "\n" @@ -7257,7 +7257,7 @@ struct vg_shader _shader_scene_font = { "\n" "float luminance( vec3 v )\n" "{\n" -" return dot( v, vec3(0.2126, 0.7152, 0.0722) );\n" +" return dot( v, vec3(0.2126, 0.7052, 0.0722) );\n" "}\n" "\n" "vec3 clearskies_ambient( vec3 dir )\n" @@ -7271,7 +7271,7 @@ struct vg_shader _shader_scene_font = { " ambient += g_nightsky_colour.rgb * (1.0-g_day_phase);\n" " \n" " /* Add gradient */\n" -" ambient -= sky_gradient * luminance(ambient);\n" +" ambient -= sky_gradient * luminance(ambient)*1.6;\n" " \n" " return ambient;\n" "}\n" @@ -7301,7 +7301,7 @@ struct vg_shader _shader_scene_font = { " }\n" " }\n" " \n" -" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" +" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" " return composite;\n" "}\n" "\n" @@ -7778,7 +7778,7 @@ struct vg_shader _shader_model_sky = { "\n" "float luminance( vec3 v )\n" "{\n" -" return dot( v, vec3(0.2126, 0.7152, 0.0722) );\n" +" return dot( v, vec3(0.2126, 0.7052, 0.0722) );\n" "}\n" "\n" "vec3 clearskies_ambient( vec3 dir )\n" @@ -7792,7 +7792,7 @@ struct vg_shader _shader_model_sky = { " ambient += g_nightsky_colour.rgb * (1.0-g_day_phase);\n" " \n" " /* Add gradient */\n" -" ambient -= sky_gradient * luminance(ambient);\n" +" ambient -= sky_gradient * luminance(ambient)*1.6;\n" " \n" " return ambient;\n" "}\n" @@ -7822,7 +7822,7 @@ struct vg_shader _shader_model_sky = { " }\n" " }\n" " \n" -" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" +" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" " return composite;\n" "}\n" "\n" @@ -8244,7 +8244,7 @@ struct vg_shader _shader_model_sky_space = { "\n" "float luminance( vec3 v )\n" "{\n" -" return dot( v, vec3(0.2126, 0.7152, 0.0722) );\n" +" return dot( v, vec3(0.2126, 0.7052, 0.0722) );\n" "}\n" "\n" "vec3 clearskies_ambient( vec3 dir )\n" @@ -8258,7 +8258,7 @@ struct vg_shader _shader_model_sky_space = { " ambient += g_nightsky_colour.rgb * (1.0-g_day_phase);\n" " \n" " /* Add gradient */\n" -" ambient -= sky_gradient * luminance(ambient);\n" +" ambient -= sky_gradient * luminance(ambient)*1.6;\n" " \n" " return ambient;\n" "}\n" @@ -8288,7 +8288,7 @@ struct vg_shader _shader_model_sky_space = { " }\n" " }\n" " \n" -" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" +" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" " return composite;\n" "}\n" "\n" @@ -8823,7 +8823,7 @@ struct vg_shader _shader_model_character_view = { "\n" "float luminance( vec3 v )\n" "{\n" -" return dot( v, vec3(0.2126, 0.7152, 0.0722) );\n" +" return dot( v, vec3(0.2126, 0.7052, 0.0722) );\n" "}\n" "\n" "vec3 clearskies_ambient( vec3 dir )\n" @@ -8837,7 +8837,7 @@ struct vg_shader _shader_model_character_view = { " ambient += g_nightsky_colour.rgb * (1.0-g_day_phase);\n" " \n" " /* Add gradient */\n" -" ambient -= sky_gradient * luminance(ambient);\n" +" ambient -= sky_gradient * luminance(ambient)*1.6;\n" " \n" " return ambient;\n" "}\n" @@ -8867,7 +8867,7 @@ struct vg_shader _shader_model_character_view = { " }\n" " }\n" " \n" -" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" +" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" " return composite;\n" "}\n" "\n" @@ -9407,7 +9407,7 @@ struct vg_shader _shader_model_board_view = { "\n" "float luminance( vec3 v )\n" "{\n" -" return dot( v, vec3(0.2126, 0.7152, 0.0722) );\n" +" return dot( v, vec3(0.2126, 0.7052, 0.0722) );\n" "}\n" "\n" "vec3 clearskies_ambient( vec3 dir )\n" @@ -9421,7 +9421,7 @@ struct vg_shader _shader_model_board_view = { " ambient += g_nightsky_colour.rgb * (1.0-g_day_phase);\n" " \n" " /* Add gradient */\n" -" ambient -= sky_gradient * luminance(ambient);\n" +" ambient -= sky_gradient * luminance(ambient)*1.6;\n" " \n" " return ambient;\n" "}\n" @@ -9451,7 +9451,7 @@ struct vg_shader _shader_model_board_view = { " }\n" " }\n" " \n" -" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" +" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" " return composite;\n" "}\n" "\n" @@ -9992,7 +9992,7 @@ struct vg_shader _shader_model_entity = { "\n" "float luminance( vec3 v )\n" "{\n" -" return dot( v, vec3(0.2126, 0.7152, 0.0722) );\n" +" return dot( v, vec3(0.2126, 0.7052, 0.0722) );\n" "}\n" "\n" "vec3 clearskies_ambient( vec3 dir )\n" @@ -10006,7 +10006,7 @@ struct vg_shader _shader_model_entity = { " ambient += g_nightsky_colour.rgb * (1.0-g_day_phase);\n" " \n" " /* Add gradient */\n" -" ambient -= sky_gradient * luminance(ambient);\n" +" ambient -= sky_gradient * luminance(ambient)*1.6;\n" " \n" " return ambient;\n" "}\n" @@ -10036,7 +10036,7 @@ struct vg_shader _shader_model_entity = { " }\n" " }\n" " \n" -" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" +" vec3 composite = sky_colour + sun_colour + star*star_blend;\n" " return composite;\n" "}\n" "\n" diff --git a/shaders/light_clearskies.glsl b/shaders/light_clearskies.glsl index 1bd2469..5cc4383 100644 --- a/shaders/light_clearskies.glsl +++ b/shaders/light_clearskies.glsl @@ -51,7 +51,7 @@ float stars( vec3 rd, float rr, float size ){ float luminance( vec3 v ) { - return dot( v, vec3(0.2126, 0.7152, 0.0722) ); + return dot( v, vec3(0.2126, 0.7052, 0.0722) ); } vec3 clearskies_ambient( vec3 dir ) @@ -65,7 +65,7 @@ vec3 clearskies_ambient( vec3 dir ) ambient += g_nightsky_colour.rgb * (1.0-g_day_phase); /* Add gradient */ - ambient -= sky_gradient * luminance(ambient); + ambient -= sky_gradient * luminance(ambient)*1.6; return ambient; } @@ -95,7 +95,7 @@ vec3 clearskies_sky( vec3 ray_dir ) } } - vec3 composite = sky_colour + sun_colour + star*star_blend; + vec3 composite = sky_colour + sun_colour + star*star_blend; return composite; } diff --git a/shaders/scene_water.fs b/shaders/scene_water.fs index 98875d0..d4bee82 100644 --- a/shaders/scene_water.fs +++ b/shaders/scene_water.fs @@ -17,7 +17,7 @@ uniform vec3 uOceanColour; #include "motion_vectors_fs.glsl" vec4 water_surf( vec3 halfview, vec3 vnorm, float depthvalue, - vec4 beneath, vec4 above ) + vec4 beneath, vec4 above, vec4 dudva ) { vec3 surface_tint = mix(uShoreColour, uOceanColour, depthvalue); @@ -30,11 +30,15 @@ vec4 water_surf( vec3 halfview, vec3 vnorm, float depthvalue, // Depth float depthblend = pow( beneath.r, 0.8 ); - // Composite - vec3 vsurface = mix(surface_tint, above.rgb, ffresnel ); - //vsurface += spec; + // Foam + float fband = fract( aCo.z*0.02+uTime*0.1+depthvalue*10.0 ); + fband = step( fband+dudva.a*0.8, 0.3 ) * max((1.0-depthvalue*4.0),0.0); - return vec4( vsurface,depthblend ); + vec4 surf = mix( vec4(surface_tint,depthblend), + vec4(1.0,1.0,1.0,0.5), fband ); + surf.rgb = scene_compute_lighting( surf.rgb, aNorm.xyz, aWorldCo ); + surf.rgb = mix(surf.rgb, above.rgb, ffresnel ); + return surf; } void main() @@ -55,10 +59,6 @@ void main() vec3 surfnorm = dudva.rgb + dudvb.rgb; surfnorm = normalize(vec3(0.0,1.0,0.0) + dudva.xyz*0.4 + dudvb.xyz*0.1); - // Foam - float fband = fract( aCo.z*0.02+uTime*0.1+depthvalue*10.0 ); - fband = step( fband+dudva.a*0.8, 0.3 ) * max((1.0-depthvalue*4.0),0.0); - // Lighting vec3 halfview = -normalize( aCo-uCamera ); @@ -70,8 +70,8 @@ void main() float fdist = pow(length( aCo.xz-uCamera.xz ) * 0.00047, 2.6); // Composite - vec4 vsurface = water_surf( halfview, surfnorm, depthvalue, beneath, above ); + vec4 vsurface = water_surf( halfview, surfnorm, depthvalue, beneath, above, dudva ); vsurface.a -= fdist; - oColour = mix( vsurface, vec4(1.0,1.0,1.0,0.5), fband ); - oColour.rgb = scene_compute_lighting( oColour.rgb, aNorm.xyz, aWorldCo ); + + oColour = vsurface; } diff --git a/world_load.c b/world_load.c index b741a31..c275c7a 100644 --- a/world_load.c +++ b/world_load.c @@ -491,12 +491,23 @@ void world_init_blank( world_instance *world ) state->g_shadow_length = 9.50f; state->g_shadow_spread = 0.65f; +#if 0 + /* 2023 style */ v3_copy( (v3f){0.37f, 0.54f, 0.97f}, state->g_daysky_colour ); v3_copy( (v3f){0.03f, 0.05f, 0.20f}, state->g_nightsky_colour ); v3_copy( (v3f){1.00f, 0.32f, 0.01f}, state->g_sunset_colour ); v3_copy( (v3f){0.13f, 0.17f, 0.35f}, state->g_ambient_colour ); v3_copy( (v3f){0.25f, 0.17f, 0.51f}, state->g_sunset_ambient ); v3_copy( (v3f){1.10f, 0.89f, 0.35f}, state->g_sun_colour ); +#else + /* 2024 style */ + v3_copy( (v3f){0.308f, 0.543f, 0.904f}, state->g_daysky_colour ); + v3_copy( (v3f){0.030f, 0.050f, 0.200f}, state->g_nightsky_colour ); + v3_copy( (v3f){1.000f, 0.320f, 0.010f}, state->g_sunset_colour ); + v3_copy( (v3f){0.130f, 0.170f, 0.350f}, state->g_ambient_colour ); + v3_copy( (v3f){0.25f, 0.17f, 0.51f}, state->g_sunset_ambient ); + v3_copy( (v3f){1.000f, 0.809f, 0.318f}, state->g_sun_colour ); +#endif } #endif /* WORLD_LOAD_C */