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);

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

谢谢你的时间,理查德。

4

1 回答 1

1

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

我相信您需要以下内容

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

看看这是否有效

于 2011-01-19T16:00:53.677 回答