完整代碼查看# AndroidShaderDemo下的SplitScreenTwoActivity
抖音上經(jīng)常見到的分屏視頻是這樣:
douyin.jpg
之前的分屏預(yù)覽用的兩個View,不利于視頻錄制,這里用一個View實現(xiàn)分屏預(yù)覽点寥,就可以實現(xiàn)類似抖音的效果了。首先將相機采集畫面渲染在一個幀緩存上蔽莱,然后將幀緩存紋理傳給一個分屏shader戚长,這里是split_sreen_fragment_shader.glsl。
這里實現(xiàn)的是分屏預(yù)覽效果是上半部分是黑白色同廉,下半部分是原色仪糖。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