Shaders a coding journey
My first shader art!


made in raw GLSL
20240727

evern better! with blending!
play with the code
// Author: Inigo Quiles
// Title: Cubic Pulse
#ifdef GL_ES
precision mediump float;
#endif
uniform vec2 u_resolution;
uniform vec2 u_mouse;
uniform float u_time;
// Function from Iñigo Quiles
// www.iquilezles.org/www/articles/functions/functions.htm
float cubicPulse( float c, float w, float x ){
x = abs(x - c);
if( x>w ) return 0.0;
x /= w;
return 0.888 - x*x*(3.0-2.0*x);
}
float exponentialInOut(float t) {
return t == 0.0 || t == 1.0
? t
: t < 0.5
? +0.5 * pow(2.0, (20.0 * t) - 10.0)
: -0.5 * pow(2.0, 10.0 - (t * 20.0)) + 1.0;
}
float plot(vec2 st, float pct){
return smoothstep( pct-0.050, pct, st.y) -
smoothstep( pct, pct+0.074, st.y);
}
vec3 sunset = vec3(0.669,0.875,0.109);
vec3 water = vec3(0.248,0.354,0.855);
void main() {
vec2 st = gl_FragCoord.xy/u_resolution;
vec3 pct = vec3(st.x);
vec3 pct2 = vec3(st.x);
pct.r = cubicPulse(0.512, 0.946, st.x);
pct.g = cubicPulse(0.512, 0.946, st.x)+-0.020;
pct.b = cubicPulse(0.512, 0.946, st.x)+-0.036;
pct2.r = cubicPulse(0.512, 0.946, st.x)+-0.060;
pct2.g = cubicPulse(0.512, 0.946, st.x)+-0.084;
pct2.b = cubicPulse(0.512, 0.946, st.x)+-0.108;
vec3 color = smoothstep(0.556,0.224, mix(sunset,water,st.y))+-0.028;
color = mix(color,vec3(1.000,0.730,0.003),plot(st, pct.g));
color = mix(color,vec3(1.000,0.150,0.055),plot(st, pct.r));
color = mix(color,vec3(0.894,1.000,0.202),plot(st, pct.b));
color = mix(color,vec3(0.087,1.000,0.000),plot(st, pct2.r));
color = mix(color,vec3(0.299,0.836,1.000),plot(st, pct2.g));
color = mix(color,vec3(0.900,0.450,1.000),plot(st, pct2.b));
gl_FragColor = vec4(color,1.000);
}
GLSL Shader Editor
The Book of Shaders Editor

Updates!
I figured out how to render a rectangle which made this artwork possible

Shadertoy

Eye

Chromatic Aboration 20240731
0:00
/0:00
Note: the video's player is a bit fucked
shadertoy code:
Shadertoy

Thanks for reading!

Author 
by oran collins
github.com/wisehackermonkey