Back to shaders

Shader test bench

SimplePS

shadered-examples generative glsl runnable fragment MIT
Source
runnable fragment

Complete GLSL fragment shader. Stronghold runs it directly when the browser can compile it.

Code

precision mediump float;

in vec4 outPos;
in vec4 outColor;
in vec2 outUV;

#define fragColor gl_FragColor

uniform float eFactor;
uniform float iFactor1;
uniform float iFactor2;

uniform sampler2D Noise2d;

void main() {
    vec3 offset = vec3(-eFactor, -eFactor + 0.06, -eFactor * 0.92);
    vec3 color;   
    
    // Compute noise
    vec3 noiseCoord = outPos.xyz + offset;
    vec4 noiseVec   = texture(Noise2d, outUV);
    float intensity = abs(noiseVec[0] - 0.25) +
                      abs(noiseVec[1] - 0.125) +
                      abs(noiseVec[2] - 0.0625) +
                      abs(noiseVec[3] - 0.03125);
    
    // continue noise evaluation                  
    intensity = iFactor1 * (noiseVec.x + noiseVec.y + noiseVec.z + noiseVec.w);
    intensity = iFactor2 * abs(2.0 * intensity - 1.0);
    intensity = clamp(intensity, 0.0, 1.0);

    // discard pixels in a psuedo-random fashion (noise)
    if (intensity < fract(0.5-offset.x-offset.y-offset.z)) {
		discard;
	}

    fragColor = outColor;
}