X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=vrfileman;a=blobdiff_plain;f=sdr%2Fgrid.p.glsl;h=3dc1230c740f471af1778721fd0fd145513355ce;hp=86a30a5b9727504213ab4d19010f0b59ecb59185;hb=5854b2eec65e297e1b21e8e1716c02516a3bac4a;hpb=dd39621d642e417f1e343cbf813205a658272639 diff --git a/sdr/grid.p.glsl b/sdr/grid.p.glsl index 86a30a5..3dc1230 100644 --- a/sdr/grid.p.glsl +++ b/sdr/grid.p.glsl @@ -1,23 +1,17 @@ -varying vec3 pos, vpos; +uniform sampler2D tex; +uniform vec3 fog_color, grid_color; -float grid(vec2 p, float duty) -{ - float w = duty * 0.5; - p = fract(p); - return smoothstep(1.0 - w, 1.0, p.x) + (1.0 - smoothstep(0.0, w, p.x)) + - smoothstep(1.0 - w, 1.0, p.y) + (1.0 - smoothstep(0.0, w, p.y)); -} +varying vec3 vpos; void main() { - vec3 p = pos * 500.0; - - const vec3 grid_color = vec3(1.0, 0.2, 0.8); - const vec3 bg_color = vec3(0.5, 0.1, 1.0); - vec3 color = grid_color * grid(p.xz, 0.2); + vec3 texel = texture2D(tex, gl_TexCoord[0].st).xyz; + vec3 color = pow(texel * grid_color, vec3(0.75)) * 2.0; - float fog = min(abs(vpos.z) * 0.05, 1.0); + float dist = abs(vpos.z); + float fog = 1.0 - exp(-dist * 0.11); - gl_FragColor.xyz = mix(color, bg_color, fog); + float t = clamp(fog, 0.0, 1.0); + gl_FragColor.xyz = mix(color, fog_color, t); gl_FragColor.a = 1.0; }