Project_2024-09-24_00-30-21

GLSL shader by scry · created 2024-09-24 · updated 2025-12-07 · 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)

Common

#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));
}

Buffer A (iChannel0)

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.);
    float t = time;
    //uv *= 0.2;
    //uv = uv/dot(uv,uv)*0.9;
    //uv.x += 2.5;
    //uv = uv/dot(uv,uv);
    //uv *= 0.2;
    //uv = -abs(uv.yx);
    //uv *= 1.2-sin(time)*0.1;
    //uv *= r2d(deg*45.);
    vec2 m = vec2(90.+sin(time)*8.)*1.;
    float a = 0.001;
    vec2 ov = uv;
    for (int j=0;j<44;j++){
        //uv = ov;
        
        for (int i=0;i<8;i++) {
            uv += vec2(sin(uv.y*m.x),cos(uv.x*m.y))*a*0.45;
            //uv *= 1.0;
            uv *= r2d(deg*45.);
            //uv *= r2d(deg*float(j+1)*uv.y*10.*(mod(i,2)-0.5));
            //uv += 0.002;
            //col += sin(uv.x*pi*30.+pi/-3.)*0.5+0.5;
            //uv *= 3.5;
        }
        //uv = abs(uv);
        //ov = abs(ov)-0.2;
        uv *= r2d(deg*45.*1.);
        //ov *= r2d(deg*180.);
        //uv = mix(uv,ov,uv.y*0.25);
        //uv *= r2d((mod(j,2.)-0.5)*3.*3.-t*0.01);
        //uv *= 24.3;
        //uv.y -= uv.y*0.5*sin(3.+time);
        //uv.y -= 0.01;
        //uv += vec2(sin(time+sin(ov.x*4.-t)*1.5),cos(time+sin(ov.y*4.+t)*1.5))*0.012;
        //uv *= r2d(deg*160.);
        col += sin(uv.x*(12.+float(j)*0.)+time*0.+13.+vec3(1.,2.,3.25+length(uv)*4.)+float(j)*2.2)*0.9+0.5;
        //col += sin(col*3.-1.5)*0.4;
    }
    col *= 1./8.;
    col -= 1.;
    //col *= 9.;
    //col -= 4.2;
    vec3 fcol = vec3(0.);
    //col *= 0.2;
    //col += sin(col*0.5);
    //col *= 0.2;
    //col += sin(uv.y*pi*2.+pi/2.)*0.8;
    //col *= 0.25;
    col *= 0.4;
    col += sin(length(uv)*69.)*0.2;
    //col += sin(uv.x*pi*19.);
    //col = sin(sin(uv.y*80.)*1.+uv.x*4.+vec3(1.,2.,3.));
    //col = sin(col*3.-1.5);
    //col = rgb2hsv(col);
    //fcol = rgb2hsv(col);
    //fcol.x *= 4.;
    //fcol.x += t;
    //fcol.y *= 2.;
    //fcol = hsv2rgb(fcol);
    //col = hsv2rgb(fcol)*(fcol.y*0.5);
    //col = rgb2hsv(col);
    //col.x *= 0.5;
    //col.x += -t;;
    //col.z *= 1.;
    //col.y = col.z*2.;
    //col.z *= 2.;
    //col.z -= 0.15;
    //col.y *= 1.+col.z*2.;
    //col = hsv2rgb(col);
    //fcol += smoothstep(0.15,0.,col.xyz-0.4)*0.7;
    //col = col*1.5;
    
    //col += smoothstep(0.5,0.,length(uv));
    //col += smoothstep(0.45,0.,length(uv+vec2(0.,0.2))+uv.y*0.2);
    //col = (sin(col*pi*4.+vec3(1.,2.,3.))*0.5+0.5)*(col*2.+0.);
    //col += sin(uv.x*4.+sin(time)*2.+vec3(1.,2.,3.))*0.5+0.5;
    col += slogo(tv,1.,300./1.)*(sin(vec3(0.6+tv.x*20.))*0.4+0.6)*0.2;
    fragColor = vec4(col,1.0);
}

Image

Not used

More shaders by scry

Browse all public shaders · All shaders by scry · ShaderKit home

Vibe Mode BETA
💰 ~0 credits
Uniforms
FPS: 0
Time: 0
Resolution: 0 x 0

Account

FPS: -- Time: -- --×-- 1x