ISF - Generators - Stripes+
/*{
"CREDIT": "pablo.riera",
"DESCRIPTION": "",
"CATEGORIES": [
"XXX"
],
"INPUTS": [
{
"NAME": "color",
"TYPE": "color",
"DEFAULT": [
1,
1,
1,
1
]
},
{
"NAME": "sc",
"TYPE": "float",
"DEFAULT": 100,
"MIN": 0,
"MAX": 1000
},
{
"NAME": "off",
"TYPE": "float",
"DEFAULT": 0,
"MIN": -1,
"MAX": 2
},
{
"NAME": "rot",
"TYPE": "float",
"DEFAULT": 0,
"MIN": 0,
"MAX": 6.28
},
{
"NAME": "ssca",
"TYPE": "float",
"DEFAULT": 1,
"MIN": 0,
"MAX": 2
},
{
"NAME": "dir",
"TYPE": "point2D",
"DEFAULT": [
0,
0
]
}
]
}*/
float bump(float w, float center, float x)
{
float f = 1.0;
return smoothstep( (center-w)/f , (center-w)*f , x)*smoothstep( (center+w)/f , (center+w)*f , x);
}
void main() {
vec2 pos = isf_FragNormCoord.xy;
// ;
vec3 color = vec3(color.rgb);
float x = float(int(pos.x*4.0));
float ph = rot;//+ 3.1415*sin(6.0*pos.x)*x;
/*if(x==0.0)
ph=0.0;
else if(x==1.0)
ph=+3.14/4.0;
else if(x==2.0)
ph=+3.14/2.0;
else if(x==3.0)
ph=3.14/4.0*3.0;*/
for(int i=0;i<4;i++)
{
ph+=bump(0.25,float(i)/4.0,pos.x)*3.1415/4.0;
}
vec2 M = vec2(sin(ph),cos(ph))*sc;
float shape = sin(dot(pos,M))*ssca+off;
gl_FragColor = vec4(shape*color,1.0);
}