- Android基于Shader的图像处理(14)-仿抖音分屏预览
- Android基于Shader的图像处理(13)-相机分屏预览
- Android基于Shader的图像处理(8)-仿抖音缩放特效
- Android基于Shader的图像处理(10)-仿抖音毛刺特效
- Android基于Shader的图像处理(12)-仿抖音抖动特效
- Android基于Shader的图像处理(9)-仿抖音闪白特效
- Android基于Shader的图像处理(11)-仿抖音灵魂出窍
- Android基于Shader的图像处理(6)-Camera开发
- Android基于Shader的图像处理(15) -文字水印
- 【Android 进阶】仿抖音系列之列表播放视频(二)
完整代码查看# AndroidShaderDemo下的SplitScreenTwoActivity
抖音上经常见到的分屏视频是这样:

之前的分屏预览用的两个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);
}
最终效果是这样:

网友评论