X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=shaders%2Fimpl.c;h=eeebab19d159bfc980dd3fab9445588456fd68ef;hb=93790b71d3a89724255dc73239e38c08ad4bbac7;hp=746279473a3d9526dd6bb94f9253b88344525f24;hpb=8d336ea2cde7c596296dbaf0d3ce27a82c6c6cf0;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/shaders/impl.c b/shaders/impl.c index 7462794..eeebab1 100644 --- a/shaders/impl.c +++ b/shaders/impl.c @@ -5566,12 +5566,15 @@ struct vg_shader _shader_scene_water = { "\n" "uniform vec3 uShoreColour;\n" "uniform vec3 uOceanColour;\n" +"uniform float uFresnel;\n" +"uniform float uWaterScale;\n" +"uniform vec4 uWaveSpeed;\n" "\n" "#line 1 1 \n" "// :D\n" "const float CLEARSKIES_LIGHT_DOT_MIN = 0.0;\n" "\n" -"#line 16 0 \n" +"#line 19 0 \n" "#line 1 2 \n" "// :D\n" "\n" @@ -5940,7 +5943,7 @@ struct vg_shader _shader_scene_water = { " return world_compute_lighting( diffuse, normal, co, compute_board_shadow() );\n" "}\n" "\n" -"#line 17 0 \n" +"#line 20 0 \n" "#line 1 3 \n" "const float k_motion_lerp_amount = 0.01;\n" "\n" @@ -5960,7 +5963,7 @@ struct vg_shader _shader_scene_water = { " oMotionVec = (vmotion1-vmotion0) * (1.0/k_motion_lerp_amount);\n" "}\n" "\n" -"#line 18 0 \n" +"#line 21 0 \n" "\n" "// Pasted from common_world.glsl\n" "vec3 water_compute_lighting( vec3 diffuse, vec3 normal, vec3 co )\n" @@ -6020,8 +6023,7 @@ struct vg_shader _shader_scene_water = { "{\n" " vec3 surface_tint = mix(uShoreColour, uOceanColour, depthvalue);\n" "\n" -" //TODO: Make exponent a material param (default: 5.0)\n" -" float ffresnel = pow(1.0-dot( vnorm, halfview ),0.8);\n" +" float ffresnel = pow(1.0-dot( vnorm, halfview ),uFresnel);\n" "\n" " vec3 lightdir = vec3(0.95,0.0,-0.3);\n" " vec3 specdir = reflect( -lightdir, vnorm );\n" @@ -6065,8 +6067,7 @@ struct vg_shader _shader_scene_water = { " // Surface colour composite\n" " float depthvalue = clamp( -world_water_depth(aCo)*(1.0/25.0), 0.0,1.0 );\n" "\n" -" //TODO: Material param (default: 0.008)\n" -" vec2 world_coord = aCo.xz * 0.12;\n" +" vec2 world_coord = aCo.xz * uWaterScale;\n" " //TODO: Material param ( 0.008, 0.006, 0.003, 0.03 );\n" " vec4 time_offsets = vec4( uTime ) * vec4( 0.08, -0.08, -0.03, -0.01 );\n" " vec4 dudva = texture( uTexDudv, world_coord + time_offsets.xy )-0.5;\n" @@ -6108,6 +6109,9 @@ GLuint _uniform_scene_water_uBoard0; GLuint _uniform_scene_water_uBoard1; GLuint _uniform_scene_water_uShoreColour; GLuint _uniform_scene_water_uOceanColour; +GLuint _uniform_scene_water_uFresnel; +GLuint _uniform_scene_water_uWaterScale; +GLuint _uniform_scene_water_uWaveSpeed; GLuint _uniform_scene_water_g_world_depth; GLuint _uniform_scene_water_uLightsArray; GLuint _uniform_scene_water_uLightsIndex; @@ -11299,6 +11303,9 @@ void vg_auto_shader_link(void) _uniform_scene_water_uBoard1 = glGetUniformLocation( _shader_scene_water.id, "uBoard1" ); _uniform_scene_water_uShoreColour = glGetUniformLocation( _shader_scene_water.id, "uShoreColour" ); _uniform_scene_water_uOceanColour = glGetUniformLocation( _shader_scene_water.id, "uOceanColour" ); + _uniform_scene_water_uFresnel = glGetUniformLocation( _shader_scene_water.id, "uFresnel" ); + _uniform_scene_water_uWaterScale = glGetUniformLocation( _shader_scene_water.id, "uWaterScale" ); + _uniform_scene_water_uWaveSpeed = glGetUniformLocation( _shader_scene_water.id, "uWaveSpeed" ); _uniform_scene_water_g_world_depth = glGetUniformLocation( _shader_scene_water.id, "g_world_depth" ); _uniform_scene_water_uLightsArray = glGetUniformLocation( _shader_scene_water.id, "uLightsArray" ); _uniform_scene_water_uLightsIndex = glGetUniformLocation( _shader_scene_water.id, "uLightsIndex" );