void MAIN()
{
    mat2 rotMat = mat2(cosAlpha, sinAlpha, -sinAlpha, cosAlpha);

    vec2 uv0 = TEXTURE_UV / brushSize * 1000.0;
    uv0 = (uv0.yx * rotMat).yx;

    vec2 uv1 = texture(noiseSample, fract(uv0)).xy - 0.5;
    uv1*= vec2(1.0, 0.01);
    uv1*= rotMat;
    uv1.y *= FRAMEBUFFER_Y_UP;
    vec2 uv2 = INPUT_UV + uv1 * 0.1 * brushLength;

    vec2 halfPixelSize = 0.5 / INPUT_SIZE;
    FRAGCOLOR = texture(INPUT, clamp(uv2, halfPixelSize, 1.0 - halfPixelSize));
}
