Project_2024-10-14_02-39-59_forked_forked
GLSL shader by scry · created 2024-10-18 · updated 2025-12-30 · 10s loop · 2 passes
This page opens the shader in the ShaderKit browser GLSL editor: edit it live, fork it, or render it to video, GIF or images up to 8K. Also available as a full-screen view and an embeddable player.
Shader source (GLSL)
Buffer A (iChannel0)
#define pi acos(-1.)
#define deg pi/180.
#define time iTime*pi/10.
#define R iResolution.xy
#define ar R.x/R.y
vec3 cs = vec3(1.,2.,3.);
mat2 r2d(float a) {
return mat2(cos(a),sin(a),-sin(a),cos(a));
}
vec3 rgb2hsv(vec3 c){vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));vec4
q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r)); float d
= q.x - min(q.w, q.y);float e = 1.0e-10;return vec3(abs(q.z + (q.w -
q.y) / (6.0 * d + e)), d / (q.x + e), q.x);}vec3 hsv2rgb( vec3 c ) {
vec4 K = vec4( 1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); vec3 p = abs( fract(
c.xxx + K.xyz ) * 6.0 - K.www); return c.z * mix( K.xxx, clamp( p -
K.xxx, 0.0, 1.0), c.y);}float bitm(vec2 uv,int c) {float h = 5.;float
w = 3.;int p = int(pow(2.,w)); float line1 = 9591.; uv = floor(vec2(
uv.x*w,uv.y*h))/vec2(w,w);float c1 = 0.;float cc = uv.x + uv.y*w; c1
= mod( floor( float(c) / exp2(ceil(cc*w-0.6))) ,2.); c1 *= step( 0.,
uv.x)*step(0.,uv.y);c1 *= step(0.,(-uv.x+0.99))*step(0.,(-uv.y+1.6));
return (c1);}vec3 slogo(vec2 uv, float ar_, float size) {size = 240./
size;uv.x = 1.-uv.x;vec2 px = vec2(1./3.,1./5.); float ls = 4.1;uv *=
240./5.25/size;ls += 2.;float ul = length(uv);ul = length(vec2(uv.x*
0.5,uv.y)-0.5);uv -= 0.4;uv.x *= ar*1.75;uv.y *= 1.04;int s = 29671;
int c = 29263;int r = 31469; int y = 23186; uv.x= 5.-uv.x; float b =
bitm(uv,s); uv.x -= 1./3.*4.; b += bitm( uv,c); uv.x -= 1./3.*4.;b +=
bitm(uv,r);uv.x -= 1./3.*4.;b += bitm(uv,y);float rr = step(0.,uv.x+
px.x*13.)*step(0.,uv.y+px.y)*step(0.,(-uv.x+px.x*4.))*step(0.,(-uv.y
+px.y*6.));b = clamp(b,0.,1.);vec3 l = hsv2rgb(vec3(b+iTime/40.,0.1,
rr-b*1.9))*rr;l -= 0.1-clamp(ul*0.1,rr*1.-b,0.1);return vec3(l);}
void mainImage(out vec4 fragColor, in vec2 fragCoord) {
vec2 uv = fragCoord.xy / iResolution.xy;
vec2 tv = uv;
uv -= 0.5;
uv.x *= ar;
vec3 col = vec3(0.);
uv = uv/dot(uv,uv);
uv *= 4.;
for (int i=0;i<35;i++) {
uv.x += sin(uv.y*0.9+uv.x/4.)*0.6;
uv *= r2d(deg*30.);
uv *= 0.0001;
uv = uv/dot(uv,uv);
//if (mod(float(i),8.) == 1.) {
//uv = abs(uv)-0.5;
//}
//uv *= 0.5;
}
vec2 fv = uv;
//uv *= 1./length(uv);
//uv *= 30.;
uv = uv/dot(uv,uv);
uv *= 40000.;
vec2 dv = uv*1./length(uv);
dv *= 40.;
col += sin(atan(uv.x,uv.y)*6.+vec3(1.,2.,3.)+time*-10.)*1.+0.;
//col += sin(dv.x/10.+time*4.+vec3(1.,2.,3.));
fv *= r2d(deg*-60.);
col += sin(fv.x/40.+vec3(1.,2.,3.3)+time*10.);
//col += sin(uv.x*2.5-uv.y+vec3(1.,2.,4.))*0.2+0.5;
col -= 0.;
col *= 0.5;
col += slogo(tv,1.,300./1.)*(sin(vec3(0.6+tv.x*20.))*0.4+0.2)*0.8;
//col += smoothstep(0.005,0.,length(uv)-0.05);
//col += smoothstep(0.1,0.,abs(uv.y-0.1));
fragColor = vec4(col, 1.0);
}
Image
Not used
More shaders by scry
- Spiral Nebula Nocturne
- Iridescent Ground Ritual
- Project_2026-08-15_18-22-06
- Project_2026-08-14_16-45-00
- Project_2026-07-24_15-10-23
- Project_2026-07-15_03-18-26
- Glass of Orange Juice (raymarched)
- Project_2026-07-13_00-53-50
- Project_2026-07-10_16-39-54
- Popcorn ceiling
- Project_2026-06-20_15-32-19
- Project_2026-06-25_12-22-43
Browse all public shaders · All shaders by scry · ShaderKit home
Unread comments
×Projects with new comments. Click to open and read.