// Copyright (C) 2007 Dave Griffiths // Licence: GPLv2 (see COPYING) // Fluxus Shader Library // --------------------- // BadPrint NPR Shader // This shader tries to emulate the effect // of a bad printing process. Can be controlled // with different settings for RGB uniform vec3 Scale; uniform vec3 Offset; uniform vec3 Register; uniform vec3 Size; varying vec3 N; varying vec3 P; varying vec4 S; varying vec3 L; void main() { vec3 l = normalize(L); vec3 n = normalize(N); vec2 p = S.xy/S.w; vec2 sr = p*Size.r+Register.r; vec2 sg = p*Size.g+Register.g; vec2 sb = p*Size.b+Register.b; float diffuse = dot(l,n); float r = (sin(sr.x)+cos(sr.y))*Scale.r+Offset.r+diffuse; float g = (sin(sg.x)+cos(sg.y))*Scale.g+Offset.g+diffuse; float b = (sin(sb.x)+cos(sb.y))*Scale.b+Offset.b+diffuse; gl_FragColor = vec4(step(0.5,r),step(0.5,g),step(0.5,b),1); }