我正在尝试创建一个与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);
但是这不起作用,它确实改变了精灵的颜色而不是半透明。我错过了什么?
谢谢你的时间, 理查德。
答案 0 :(得分:1)
看起来你正在通过混合因子缩放从纹理中获得的颜色,这不是alpha的执行方式(这会使它更暗)。
我相信您需要以下内容
gl_FragColor = vec4(texture2d(texture, coord).rgb, blend);
看看是否有效