From: John Tsiombikas Date: Wed, 10 Aug 2016 22:18:52 +0000 (+0300) Subject: slightly better? X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=vrfileman;a=commitdiff_plain;h=5e07bfd4d034dc3d974c8db008c6446e62838d39 slightly better? --- diff --git a/sdr/glink.p.glsl b/sdr/glink.p.glsl index 0c51278..372af7f 100644 --- a/sdr/glink.p.glsl +++ b/sdr/glink.p.glsl @@ -1,21 +1,117 @@ +uniform float tsec, phase; + +float cnoise(vec2 p); +float fbm(vec2 p, int octaves); + void main() { const vec3 color = vec3(0.2, 0.4, 1.0); + float tm = tsec + phase; + vec2 uv = gl_TexCoord[0].st; vec2 pt = uv * vec2(2.0) - vec2(1.0); + float pulse = fbm(vec2(uv.y * 50.0 - tm * 0.5, 0.0), 2); + float d_horiz = abs(pt.x); float d_vert = max(abs(pt.y), 0.0); - float beam_sharpness = 80.0 * min(uv.y + 0.3, 1.0); - float beam_intensity = 6.0 * (1.0 - uv.y); + float beam_sharpness = 80.0 * clamp(pow(uv.y, 0.5), 0.0, 1.0) * (pulse * 0.5 + 1.0); + float beam_intensity = 6.0 * min(0.01 / (uv.y * uv.y) - 0.0004, 1.0); float glow_u = pow(1.0 - smoothstep(0.0, 1.0, d_horiz), beam_sharpness) * beam_intensity; - float glow_v = 1.0 - smoothstep(0.8, 1.0, d_vert); + float glow_v = 1.0 - smoothstep(0.98, 1.0, d_vert); float glow = glow_u * glow_v; gl_FragColor.rgb = color * glow;// + vec3(0.0, 1.0, 0.0) * step(0.99, max(abs(pt.x), abs(pt.y))); gl_FragColor.a = 1.0; } + +float fbm(vec2 p, int octaves) +{ + float res = 0.0; + float freq = 1.0; + float scale = 1.0; + + for(int i=0; i