From: hgn Date: Tue, 30 Jan 2024 04:30:51 +0000 (+0000) Subject: fix quality profile water/shadows X-Git-Url: https://harrygodden.com/git/?p=carveJwlIkooP6JGAAIwe30JlM.git;a=commitdiff_plain;h=ad4482080bf2dc650945f7bb0765ca8dba76155f fix quality profile water/shadows --- diff --git a/shaders/scene_water_fast.fs b/shaders/scene_water_fast.fs index 77aa569..f89cee5 100644 --- a/shaders/scene_water_fast.fs +++ b/shaders/scene_water_fast.fs @@ -55,4 +55,5 @@ void main() vec4 vsurface = water_surf( halfview, surfnorm, depthvalue ); 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 ); } diff --git a/world_gen.c b/world_gen.c index 6572876..1bbc2ca 100644 --- a/world_gen.c +++ b/world_gen.c @@ -109,7 +109,8 @@ static void world_apply_procedural_foliage( world_instance *world, scene_context *scene, struct world_surface *mat ) { - if( vg.quality_profile == k_quality_profile_low ) + if( (vg.quality_profile == k_quality_profile_low) || + (vg.quality_profile == k_quality_profile_min) ) return; vg_info( "Applying foliage (%u)\n", mat->info.pstr_name ); diff --git a/world_render.c b/world_render.c index 9eac40e..e675abf 100644 --- a/world_render.c +++ b/world_render.c @@ -858,6 +858,13 @@ static void world_prerender( world_instance *world ){ state->g_debug_complexity = k_debug_light_complexity; state->g_time_of_day = vg_fractf( world->time ); + if( vg.quality_profile == k_quality_profile_high ) + state->g_shadow_samples = 8; + else if( vg.quality_profile == k_quality_profile_low ) + state->g_shadow_samples = 2; + else + state->g_shadow_samples = 0; + state->g_day_phase = cosf( state->g_time_of_day * VG_PIf * 2.0f ); state->g_sunset_phase= cosf( state->g_time_of_day * VG_PIf * 4.0f + VG_PIf ); diff --git a/world_water.c b/world_water.c index 085e252..62e133d 100644 --- a/world_water.c +++ b/world_water.c @@ -170,7 +170,8 @@ static void render_water_surface( world_instance *world, camera *cam ){ glDisable(GL_BLEND); } - else if( vg.quality_profile == k_quality_profile_low ){ + else if( (vg.quality_profile == k_quality_profile_low) || + (vg.quality_profile == k_quality_profile_min) ){ shader_scene_water_fast_use(); glActiveTexture( GL_TEXTURE1 );