美文网首页
Android基于Shader的图像处理(14)-仿抖音分屏预览

Android基于Shader的图像处理(14)-仿抖音分屏预览

作者: andev009 | 来源:发表于2019-01-02 11:06 被阅读23次

    完整代码查看# AndroidShaderDemo下的SplitScreenTwoActivity
    抖音上经常见到的分屏视频是这样:

    douyin.jpg

    之前的分屏预览用的两个View,不利于视频录制,这里用一个View实现分屏预览,就可以实现类似抖音的效果了。首先将相机采集画面渲染在一个帧缓存上,然后将帧缓存纹理传给一个分屏shader,这里是split_sreen_fragment_shader.glsl

    这里实现的是分屏预览效果是上半部分是黑白色,下半部分是原色。shader的主要部分如下:

    float cx = v_TextureCoordinates.x;
    float cy = v_TextureCoordinates.y;
    
    vec3 finalColor;
    if(cy < 0.5){
          finalColor = texture2D(u_TextureUnit, vec2(cx, cy * 2.0)).rgb;
    }else{
          finalColor = texture2D(u_TextureUnit, vec2(cx, (cy -0.5) * 2.0)).rgb;
          float luminance = dot(finalColor.rgb, W);
          finalColor = vec3(luminance);
    }
    

    最终效果是这样:


    split_screen.gif

    相关文章

      网友评论

          本文标题:Android基于Shader的图像处理(14)-仿抖音分屏预览

          本文链接:https://www.haomeiwen.com/subject/ktaalqtx.html