我正在学习使用ES 2.0的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),这是一个透明的黑色像素,使我的图像边缘变暗。是否可以将透明像素视为白色?或者有更好的实现发光的方法吗?
谢谢!
答案 0 :(得分:1)
看起来我正在使用预乘alpha。切换到正常纹理,它工作正常
对不起,对不起!