Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- float lerp(float from, float to, float t) {
- return ((1.0 - t) * from) + (t * to);
- }
- float invLerp(float from, float to, float value) {
- return (value - from) / (to - from);
- }
- float remap(float from1, float from2, float to1, float to2, float value) {
- float rel = invLerp(from1, from2, value);
- return lerp(to1, to2, rel);
- }
- void mainImage( out vec4 fragColor, in vec2 fragCoord )
- {
- // Normalized pixel coordinates (from 0 to 1)
- vec2 uv = fragCoord/iResolution.xy;
- float wave1TMults[3] = float[3](3.0, 1.2, 2.4);
- float wave1Offsets[3] = float[3](0.1, 0.6, 1.3);
- float wave1YStart = 0.3;
- float wave1YEnd = 0.04;
- float wave2TMults[3] = float[3](1.0, 2.0, 0.5);
- float wave2Offsets[3] = float[3](0.0, 0.5, 0.2);
- float wave2YStart = 0.24;
- float wave2YEnd = 0.08;
- float wave1Val = 0.0;
- float wave2Val = 0.0;
- for (int i = 0; i < 3; i++) {
- float wave1Samp = sin(iTime * wave1TMults[i] + uv.x + wave1Offsets[i]);
- wave1Val += wave1Samp;
- float wave2Samp = sin(iTime * wave2TMults[i] + uv.x + wave2Offsets[i]);
- wave2Val += wave2Samp;
- }
- wave1Val /= 3.0;
- wave2Val /= 3.0;
- fragColor = vec4(0.0, 0.0, 0.0, 1.0);
- wave1Val = remap(-1.0, 1.0, wave1YStart, wave1YEnd, wave1Val);
- wave2Val = remap(-1.0, 1.0, wave2YStart, wave2YEnd, wave2Val);
- wave1Val = smoothstep(wave1Val + 0.02, wave1Val, uv.y) - smoothstep(wave1Val, wave1Val - 0.1, uv.y);
- wave2Val = smoothstep(wave2Val + 0.02, wave2Val, uv.y) - smoothstep(wave2Val, wave2Val - 0.1, uv.y);
- fragColor.rgb = mix(vec3(0.0, 0.0, 1.0 * remap(0.0, 1.0, 0.5, 1.0, uv.y)), mix(vec3(wave1Val), vec3(wave2Val), 0.5), 0.25);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement