Image processing 如何混合图像蒙版?

Image processing 如何混合图像蒙版?,image-processing,opengl-es,glsl,webgl,Image Processing,Opengl Es,Glsl,Webgl,我怎样才能戴上这样的面具 取得效果,如博克 需要模糊遮罩中的边缘并应用于图像纹理。你怎么知道的 顶点着色器: 片段着色器: 精度低浮点; 均匀取样器2D u_取样器;//纹理采样器 均匀采样2D u_掩模;//面具采样器 均匀vec3溶液; vec4模糊(取样器2D源、vec2大小、vec2 uv){ vec4 C=vec4(0.0); 浮动宽度=1.0/尺寸.x; 浮动高度=1.0/尺寸y; 浮点除数=0.0; 对于(浮动x=-25.0;x 但仅供参考,像你这样在一个过程中模糊并不常见。更

我怎样才能戴上这样的面具

取得效果,如博克

需要模糊遮罩中的边缘并应用于图像纹理。你怎么知道的

顶点着色器:

片段着色器:

精度低浮点;
均匀取样器2D u_取样器;//纹理采样器
均匀采样2D u_掩模;//面具采样器
均匀vec3溶液;
vec4模糊(取样器2D源、vec2大小、vec2 uv){
vec4 C=vec4(0.0);
浮动宽度=1.0/尺寸.x;
浮动高度=1.0/尺寸y;
浮点除数=0.0;
对于(浮动x=-25.0;x
但仅供参考,像你这样在一个过程中模糊并不常见。更常见的是在一个方向(水平方向)模糊,然后在垂直方向模糊结果,然后混合结果,模糊纹理,视频纹理,遮罩

attribute vec4 a_Position;

    void main()
    {
        gl_Position = a_Position;
    }
precision lowp float;

    uniform sampler2D u_Sampler; // textureSampler 
    uniform sampler2D u_Mask; // maskSampler
    uniform vec3 iResolution;

    vec4 blur(sampler2D source, vec2 size, vec2 uv) {

        vec4 C = vec4(0.0);

        float width = 1.0 / size.x;
        float height = 1.0 / size.y;

        float divisor = 0.0;

        for (float x = -25.0; x <= 25.0; x++)
        {
            C += texture2D(source, uv + vec2(x * width, 0.0));
            C += texture2D(source, uv + vec2(0.0, x * height));
            divisor++;
        }
        C*=0.5;

        return vec4(C.r / divisor, C.g / divisor, C.b / divisor, 1.0);

    }

    void main()
    {
        vec2 uv = gl_FragCoord.xy / iResolution.xy;
        vec4 videoColor = texture2D(u_Sampler, uv);
        vec4 maskColor = texture2D(u_Mask, uv);
        gl_FragColor = blur(u_Sampler, iResolution.xy, uv);
    }
vec4 blurColor = blur(u_Sampler, iResolution.xy, uv);
gl_FragColor = mix(blurColor, videoColor, maskColor.r);