X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=shaders%2Fscene_route.fs;h=946d4b7ae291782316ed2b0e53829c32915f1e9e;hb=be5e25dee2c54c2a22ca3bbb5bbe0eb6149343be;hp=5bb973d380e81b753493e1d4a9682ad9e70a58a0;hpb=aa4c26eae2208872824e0eb5b71bc05c16d43242;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/shaders/scene_route.fs b/shaders/scene_route.fs index 5bb973d..946d4b7 100644 --- a/shaders/scene_route.fs +++ b/shaders/scene_route.fs @@ -2,18 +2,18 @@ uniform sampler2D uTexGarbage; uniform sampler2D uTexGradients; uniform vec3 uCamera; uniform vec4 uColour; -uniform vec3 uBoard0; -uniform vec3 uBoard1; - -in vec2 aUv; -in vec4 aNorm; -in vec3 aCo; -in vec3 aWorldCo; -flat in ivec4 aLights; +#include "light_clearskies_stddef.glsl" #include "common_scene.glsl" #include "motion_vectors_fs.glsl" +float filtered_stripe( in float p, in float ddx, in float ddy ) +{ + float w = max(abs(ddx), abs(ddy)) + 0.02; + float i = (abs(fract((p-0.5*w)/2.0)-0.5)-abs(fract((p+0.5*w)/2.0)-0.5))/w; + return 0.5 - i; +} + void main() { compute_motion_vectors(); @@ -38,16 +38,18 @@ void main() vfrag = pow(uColour.rgb,vec3(1.0/2.2)); vfrag -= rgarbage.a*0.1; - if( wgarbage.g < 0.3 ) + if( wgarbage.g < 0.1 ) discard; + float movep = (aUv.x + abs(aUv.y-0.5)*0.4 - g_realtime)*2.0; + float stripe = filtered_stripe( movep, dFdx(movep), dFdy(movep) ); + vfrag *= 0.9+stripe*uColour.a; + if( g_light_preview == 1 ) { vfrag = vec3(0.5); } // Lighting - - vfrag = scene_do_lighting( vfrag, qnorm ); - oColour = vec4(vfrag, 1.0); + oColour = vec4( scene_compute_lighting( vfrag, qnorm, aWorldCo ), 1.0 ); }