mifi / editly

Slick, declarative command line video editing & API
MIT License
4.63k stars 295 forks source link

GLSL improvements #8

Open mifi opened 4 years ago

mifi commented 4 years ago

GL backgrounds: http://stack.gl/ https://www.shadertoy.com/ http://glslsandbox.com/ vantajs.com https://www.shadertoy.com/view/XslGRr https://github.com/willstall/30-days-of-shade https://github.com/radixzz/awesome-glsl

aisoftllctesting commented 2 years ago

Error in gl = Failed to format compiler error: TypeError: string.split is not a function Gl Frag file code

void main()
{   
  gl_Position = ftransform();       
  gl_TexCoord[0] = gl_MultiTexCoord0;
}

// Scene buffer
uniform sampler2D tex0; 

// Currently not used in this demo!
uniform float time; 

// GeeXLab built-in uniform, width of
// the current render target
uniform float rt_w; 
// GeeXLab built-in uniform, height of
// the current render target
uniform float rt_h; 

// Swirl effect parameters
uniform float radius = 200.0;
uniform float angle = 0.8;
uniform vec2 center = vec2(400.0, 300.0);

vec4 PostFX(sampler2D tex, vec2 uv, float time)
{
  vec2 texSize = vec2(rt_w, rt_h);
  vec2 tc = uv * texSize;
  tc -= center;
  float dist = length(tc);
  if (dist < radius) 
  {
    float percent = (radius - dist) / radius;
    float theta = percent * percent * angle * 8.0;
    float s = sin(theta);
    float c = cos(theta);
    tc = vec2(dot(tc, vec2(c, -s)), dot(tc, vec2(s, c)));
  }
  tc += center;
  vec3 color = texture2D(tex0, tc / texSize).rgb;
  return vec4(color, 1.0);
}

void main (void)
{
  vec2 uv = gl_TexCoord[0].st;
  gl_FragColor = PostFX(tex0, uv, time);
}