使用着色器在opengl es 2.0中使用半透明精灵

时间:2011-01-18 08:28:55

标签: iphone ipad shader opengl-es-2.0

我正在尝试创建一个与glcolor4f相同的着色器,然后是alpha部分。在opengl es 1.1中,如果你将alpha设置为0.5,精灵将是半透明的。

现在我似乎无法使用着色器获得效果,这就是我的着色器现在的样子:

gl_FragColor = texture2d(texture, coord) * blend;

使用这种混合模式:

glEnable(GL_BLEND);
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);

但是这不起作用,它确实改变了精灵的颜色而不是半透明。我错过了什么?

谢谢你的时间, 理查德。

1 个答案:

答案 0 :(得分:1)

看起来你正在通过混合因子缩放从纹理中获得的颜色,这不是alpha的执行方式(这会使它更暗)。

我相信您需要以下内容

gl_FragColor = vec4(texture2d(texture, coord).rgb, blend);

看看是否有效