真的是不能乱立flag,刚说完没啥事就给我来事了,这次要我试试手机摄像头的绿幕抠图,我说这玩意儿效果怎么样无法保证,毕竟是实时的,无法做到象后期那样精细的抠图
先看效果
只能说还行,绿边还是有的
shader是用了RealTimeGreenScreen这项目的算法,对参数进行了修改
思路是先把rgb转成hsv,通过rgb的g和hsv的颜色范围来确定绿色,再使用算法
HSV基本颜色分量范围
fragmentShader里的smoothstep(0.0, 0.05, gDelta);的0.05可根据自己的需求进行调节,太小了会扣太多,太大了会扣太少,我这里设0.05正好的,但换一张图片就扣太多了
2020/12/14
发现部分手机会报错,把GLDrawRenderer.java里的fragmentShader里的uniform float smooth;改成uniform highp float smooth;
有些手机对shader的写法要求比较严格,手机测试不够照成的,还是不够严谨