Added shader packs
This commit is contained in:
21
tools/packsrc/PolarVisualizer/pack.json
Normal file
21
tools/packsrc/PolarVisualizer/pack.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"author": "Lallis",
|
||||
"name": "PolarVisualizer",
|
||||
"version": "1.0.0",
|
||||
"description": "Yet another audio visualizer. Tried to fake some depth with the light and reflection. Try reversing the band order.",
|
||||
"license": "CC BY-NC-SA 3.0",
|
||||
"engine": "shadertoy",
|
||||
"id": "4lySzy",
|
||||
"tags": [
|
||||
"reactive",
|
||||
"2d"
|
||||
],
|
||||
|
||||
"source": "./shaders/Image.frag.qsb",
|
||||
"speed": 1.0,
|
||||
|
||||
"channel0":
|
||||
{
|
||||
"type": 4
|
||||
}
|
||||
}
|
||||
133
tools/packsrc/PolarVisualizer/shaders/Image.frag
Normal file
133
tools/packsrc/PolarVisualizer/shaders/Image.frag
Normal file
@@ -0,0 +1,133 @@
|
||||
#define time iTime
|
||||
#define PI 3.14159265359
|
||||
|
||||
#define NUM_BANDS 32
|
||||
|
||||
//#define REVERSED
|
||||
|
||||
float noise3D(vec3 p)
|
||||
{
|
||||
return fract(sin(dot(p ,vec3(12.9898,78.233,12.7378))) * 43758.5453)*2.0-1.0;
|
||||
}
|
||||
|
||||
vec3 mixc(vec3 col1, vec3 col2, float v)
|
||||
{
|
||||
v = clamp(v,0.0,1.0);
|
||||
return col1+v*(col2-col1);
|
||||
}
|
||||
|
||||
vec3 drawBands(vec2 uv)
|
||||
{
|
||||
uv = 2.0*uv-1.0;
|
||||
uv.x*=iResolution.x/iResolution.y;
|
||||
uv = vec2(length(uv), atan(uv.y,uv.x));
|
||||
|
||||
//uv.x-=0.25;
|
||||
//uv.x = max(0.0,uv.x);
|
||||
|
||||
uv.y -= PI*0.5;
|
||||
vec2 uv2 = vec2(uv.x, uv.y*-1.0);
|
||||
uv.y = mod(uv.y,PI*2.0);
|
||||
uv2.y = mod(uv2.y,PI*2.0);
|
||||
|
||||
vec3 col = vec3(0.0);
|
||||
vec3 col2 = vec3(0.0);
|
||||
|
||||
float nBands = float(NUM_BANDS);
|
||||
float i = floor(uv.x*nBands);
|
||||
float f = fract(uv.x*nBands);
|
||||
float band = i/nBands;
|
||||
float s;
|
||||
|
||||
#ifdef REVERSED
|
||||
band = 1.0-band;
|
||||
#endif
|
||||
|
||||
//cubic easing
|
||||
band *= band*band;
|
||||
|
||||
band = band*0.99;
|
||||
band += 0.01;
|
||||
|
||||
s = texture( iChannel0, vec2(band,0.25) ).x;
|
||||
|
||||
if(band<0.0||band>=1.0){
|
||||
s = 0.0;
|
||||
}
|
||||
|
||||
/* Gradient colors and amount here */
|
||||
const int nColors = 4;
|
||||
vec3 colors[nColors];
|
||||
colors[0] = vec3(0.05,0.05,1.0);
|
||||
colors[1] = vec3(0.05,1.00,1.00);
|
||||
colors[2] = vec3(0.50,1.00,0.25);
|
||||
colors[3] = vec3(1.00,0.75,0.25);
|
||||
|
||||
vec3 gradCol = colors[0];
|
||||
float n = float(nColors)-1.0;
|
||||
for(int i = 1; i < nColors; i++)
|
||||
{
|
||||
gradCol = mixc(gradCol,colors[i],(s-float(i-1)/n)*n);
|
||||
}
|
||||
|
||||
float h = PI*0.5;
|
||||
|
||||
col += vec3(1.0-smoothstep(-0.5,0.0,uv.y-s*h));
|
||||
col *= gradCol;
|
||||
|
||||
col2 += vec3(1.0-smoothstep(-0.5,0.0,uv2.y-s*h));
|
||||
col2*= gradCol;
|
||||
|
||||
col = mix(col,col2,step(0.0,uv.y-PI));
|
||||
|
||||
col *= smoothstep(0.125,0.375,f);
|
||||
col *= smoothstep(0.875,0.625,f);
|
||||
|
||||
col = clamp(col,0.0,1.0);
|
||||
|
||||
return col;
|
||||
}
|
||||
|
||||
void mainImage( out vec4 fragColor, in vec2 fragCoord )
|
||||
{
|
||||
vec2 uv = fragCoord.xy / iResolution.xy;
|
||||
|
||||
vec2 p = vec2(uv.x, uv.y+0.2);
|
||||
vec3 col = vec3(0.0);
|
||||
col += drawBands(p);//*smoothstep(1.0,0.5,uv.y);;
|
||||
|
||||
vec3 ref = vec3(0.0);
|
||||
vec2 eps = vec2(0.0025,-0.0025);
|
||||
|
||||
ref += drawBands(vec2(p.x,1.0-p.y)+eps.xx);
|
||||
ref += drawBands(vec2(p.x,1.0-p.y)+eps.xy);
|
||||
ref += drawBands(vec2(p.x,1.0-p.y)+eps.yy);
|
||||
ref += drawBands(vec2(p.x,1.0-p.y)+eps.yx);
|
||||
|
||||
ref += drawBands(vec2(p.x+eps.x,1.0-p.y));
|
||||
ref += drawBands(vec2(p.x+eps.y,1.0-p.y));
|
||||
ref += drawBands(vec2(p.x,1.0-p.y+eps.x));
|
||||
ref += drawBands(vec2(p.x,1.0-p.y+eps.y));
|
||||
|
||||
ref /= 8.0;
|
||||
|
||||
float colStep = length(smoothstep(0.0,0.1,col));
|
||||
|
||||
vec3 cs1 = drawBands(vec2(0.5,0.51));
|
||||
vec3 cs2 = drawBands(vec2(0.5,0.93));
|
||||
|
||||
vec3 plCol = mix(cs1,cs2,length(p*2.0-1.0))*0.15*smoothstep(0.75,-0.25,length(p*2.0-1.0));
|
||||
vec3 plColBg = vec3(0.05)*smoothstep(1.0,0.0,length(p*2.0-1.0));
|
||||
vec3 pl = (plCol+plColBg)*smoothstep(0.5,0.65,1.0-uv.y);
|
||||
|
||||
col += clamp(pl*(1.0-colStep),0.0,1.0);
|
||||
|
||||
col += ref*smoothstep(0.125,1.6125,p.y);
|
||||
|
||||
col = clamp(col, 0.0, 1.0);
|
||||
|
||||
float dither = noise3D(vec3(uv,time))*2.0/256.0;
|
||||
col += dither;
|
||||
|
||||
fragColor = vec4(col,1.0);
|
||||
}
|
||||
Reference in New Issue
Block a user