
我用
vec4 v = texture2D(CC_Texture0, v_texCoord).rgba;
float f = (v.r + v.g + v.b) / 3.0;
gl_FragColor.rgb = vec3(f , f , f );
不行,颜色是改变了,透明度没有了,我用
vec4 v = texture2D(CC_Texture0, v_texCoord).rgba;
float f = (v.r + v.g + v.b) / 3.0;
gl_FragColor.rgb = vec4(f , f , f ,v.a );
也不行,因为一旦滤镜在控制单个对象 透明度了,那所有对象只能分别挂滤镜,因为对象 透明度不同,那样性能开销受不了。
有没有一个写法能只改变对象 颜色,保有原有透明度?