out vec4 FragColor; uniform float uTime; uniform vec3 uCam; uniform vec2 uInvRes; uniform vec4 uColour; in vec3 aNorm; in vec2 aUv; in vec3 aCo; void main() { vec2 ssuv = gl_FragCoord.xy; float opacity = 1.0-smoothstep(0.0,1.0,aUv.y+uColour.a); vec3 vDither = vec3( dot( vec2( 171.0, 231.0 ), ssuv) ); float dither = fract( vDither.g / 71.0 ) - 0.5; if( opacity+dither<0.5 ) discard; FragColor = uColour; }