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

完整代码查看# 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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。