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

2019-01-02  本文已影响23人  andev009

完整代码查看# 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
上一篇下一篇

猜你喜欢

热点阅读