glsl shader 怎么把透明的变成红色

glsl shader 怎么把透明的变成红色

if怎么判断是不是透明的像素
vec2 uvs = vTextureCoord.xy;
vec4 fg = texture2D(uSampler, vTextureCoord);

gl_FragColor = fg;

if(fg.a < 0.01) {
fg.r = 1.;
fg.g = 0.;
fg.b = 0.;
fg.a = 1.;
}
试试这个

1赞

fract(fg.a + 0.99)

不用if的都是高手

fg.r = max(fg.r, 1.0-fg.a);
fg.a = max(fg.a, fg.r);

1赞