【问题标题】:LWJGL using texture as alpha maskLWJGL 使用纹理作为 alpha 蒙版
【发布时间】:2015-07-15 08:00:27
【问题描述】:

我正在使用 lwjgl 和 slick-util 创建一个 2D 游戏。对于我游戏中的一个特殊功能,我希望能够赋予纹理一定的不透明度。我已经设法解决了这个问题,但下一步是提供Texture 作为参数,这将使我能够在某些位置为某些纹理赋予某些不透明度。

注意:我之前已经让它工作了,但蒙版似乎也删除了我不想要的背景图像。

我不能发布图片,因为我没有足够的声誉或其他东西,但无论如何我想做的基本上是:

  • 先渲染一张背景图片。
  • 然后在上面渲染另一个带有遮罩的图像,我不希望这个遮罩应用到背景上。

我该怎么做呢?

【问题讨论】:

    标签: java opengl lwjgl mask masking


    【解决方案1】:

    我认为你使用了错误的混合模式。如果您没有更改默认混合模式,那么您需要:

    glEnable (GL_BLEND); // Enable blending.
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // Setup blending function.
    

    我认为在你的情况下,纹理不会与背景融合,它只是简单地替换了背景。

    【讨论】:

    • 我明白了,您对如何阻止它替换我的背景有什么建议吗?渲染蒙版纹理后是否应该渲染背景?
    • 你需要使用混合。如果禁用混合,则纹理中的透明像素会替换背景像素。如果使用混合,透明像素不会替换背景像素。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多