uniform shader image; uniform float angle; uniform float scale; half4 main(float2 coord) { float4 color = unpremul(image.eval(coord)); float average = (color.r + color.g + color.b) / 3.0; float s = sin(angle), c = cos(angle); float2 point = float2(c * coord.x - s * coord.y, s * coord.x + c * coord.y) * scale; float pattern = (sin(point.x) * sin(point.y)) * 4.0; float4 result = float4(float3(average * 10.0 - 5.0 + pattern), color.a); result.rbg *= result.a; return result; }