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

Iphone opengl es 2.0中使用着色器的半透明精灵,iphone,ipad,shader,opengl-es-2.0,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); 但这不起作用

我正在尝试创建一个着色器,它与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);
但这不起作用,它会改变精灵的颜色,但不会改变半透明性。我错过了什么

谢谢你抽出时间,
Richard。

似乎您正在通过混合因子缩放从纹理获得的颜色,而这不是alpha的执行方式(这只会使其更暗)

我相信你需要以下几点

gl_FragColor = vec4(texture2d(texture, coord).rgb, blend);
看看这是否有效