0
我正在用ES 2.0学习GLSL,我正在尝试写一个辉光片段着色器。如何让GLSL将透明纹理视为白色而不是黑色?
这就是我现在所拥有的:
for(float x = startX; x < endX; x += w) {
for(float y = startY; y < endY; y += h) {
px = texture2D(u_texture, vec2(x, y));
extra += px;
count++;
}
}
extra = clamp(extra/count, 0.0, 1.0);
我得到的问题是,我得到附近纹理的边缘暗像素。我相信这是因为像素计数为(0.0,0.0,0.0,0.0),这是一个透明的黑色像素,它使我的图像在边缘变暗。是否有可能将透明像素视为白色?还是有更好的方法来实现辉光?
谢谢!
您使用预乘alpha吗? – AshleysBrain
啊,就是这样。应该知道:< – Xzhsh