graphics changes
authorhgn <hgodden00@gmail.com>
Wed, 28 Feb 2024 14:00:30 +0000 (14:00 +0000)
committerhgn <hgodden00@gmail.com>
Wed, 28 Feb 2024 14:00:30 +0000 (14:00 +0000)
ent_npc.c
maps_src/dev_hub/main.mdl
shaders/impl.c
shaders/light_clearskies.glsl
shaders/scene_water.fs
world_load.c

index 774edff45806ae47ea40dfeefe555847fdf7b7ba..d43122330120a34bbec263daed8f30d2f8ba1cf9 100644 (file)
--- 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 );
index bcd332b11a5dcdddbd7cbc1d45fd70a8826dbebe..d53cfe6f138272e7a272fb60bf80098cb5a5b1b1 100644 (file)
Binary files a/maps_src/dev_hub/main.mdl and b/maps_src/dev_hub/main.mdl differ
index 01e1b84ebd047bc3ffe6aa2554df9161d4808ebd..539bcb1b66743421e0d15fecca79267c583abc37 100644 (file)
@@ -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"
index 1bd2469ccb772a0539c618b56e8463d3f7a10c92..5cc438315f06da6887d1ec52f4bb17743d783470 100644 (file)
@@ -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;
 }
 
index 98875d06dab54885ca44b3e293b0d5947a976529..d4bee82d8eb609a3354a72ff1748d217a1aae889 100644 (file)
@@ -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;
 }
index b741a3178e48e0f93df0e01acf4b64e70d6795e2..c275c7aee5b3c5fbe1d31c56baebee793da8f987 100644 (file)
@@ -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 */