【问题标题】:Translucent sprite in opengl es 2.0 using shaderopengl es 2.0中使用着色器的半透明精灵
【发布时间】:2011-01-20 00:00:53
【问题描述】:

我正在尝试创建一个与 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);

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

感谢您的宝贵时间, 理查德。

【问题讨论】:

    标签: iphone ipad shader opengl-es-2.0


    【解决方案1】:

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

    我相信您需要以下内容

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

    看看有没有用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-13
      相关资源
      最近更新 更多