Back to shaders
Shader test bench
Stripes.fs
runnable fragment
Complete GLSL fragment shader. Stronghold runs it directly when the browser can compile it.
Code
uniform float width;
uniform float offset;
uniform int vertical;
uniform vec4 color1;
uniform vec4 color2;
uniform float splitPos;
precision mediump float;
/*{
"CATEGORIES": [
"Geometry"
],
"CREDIT": "VIDVOX",
"INPUTS": [
{
"DEFAULT": 0.25,
"NAME": "width",
"TYPE": "float"
},
{
"DEFAULT": 0,
"NAME": "offset",
"TYPE": "float"
},
{
"DEFAULT": 0,
"NAME": "vertical",
"TYPE": "bool"
},
{
"DEFAULT": [
1,
1,
1,
1
],
"NAME": "color1",
"TYPE": "color"
},
{
"DEFAULT": [
0,
0,
0,
1
],
"NAME": "color2",
"TYPE": "color"
},
{
"DEFAULT": 0.5,
"MAX": 1,
"MIN": 0,
"NAME": "splitPos",
"TYPE": "float"
}
],
"ISFVSN": "2"
}
*/
void main() {
// determine if we are on an even or odd line
// math goes like..
// mod(((coord+offset) / width),2)
vec4 out_color = color2;
float coord = (gl_FragCoord.xy / u_resolution.xy)[0];
if (vertical) {
coord = (gl_FragCoord.xy / u_resolution.xy)[1];
}
if (width == 0.0) {
out_color = color1;
}
else if(mod(((coord+offset) / width),2.0) < 2.0 * splitPos) {
out_color = color1;
}
gl_FragColor = out_color;
}