Java 使用纹理作为alpha遮罩的LWJGL
我正在用lwjgl和slick util创建一个2D游戏。对于我游戏中的一个特殊功能,我希望能够赋予纹理一定的不透明度。我已经设法弄明白了这一点,但下一步是给出一个Java 使用纹理作为alpha遮罩的LWJGL,java,opengl,lwjgl,mask,masking,Java,Opengl,Lwjgl,Mask,Masking,我正在用lwjgl和slick util创建一个2D游戏。对于我游戏中的一个特殊功能,我希望能够赋予纹理一定的不透明度。我已经设法弄明白了这一点,但下一步是给出一个纹理作为参数,这将使我能够在某些点上给出某些纹理和某些不透明性 注意:我之前已经让它工作过了,但是遮罩似乎也移除了我不想要的背景图像 我不能发布图片,因为我没有足够的声誉或其他东西,但无论如何,我想基本上做的是: 首先渲染背景图像 然后在上面渲染另一个带有遮罩的图像,我不希望这个遮罩应用到背景上 我该怎么做呢?我认为你使用了错误的
纹理
作为参数,这将使我能够在某些点上给出某些纹理和某些不透明性
注意:我之前已经让它工作过了,但是遮罩似乎也移除了我不想要的背景图像
我不能发布图片,因为我没有足够的声誉或其他东西,但无论如何,我想基本上做的是:
- 首先渲染背景图像
- 然后在上面渲染另一个带有遮罩的图像,我不希望这个遮罩应用到背景上
我该怎么做呢?我认为你使用了错误的混合模式。如果未更改默认混合模式,则需要:
glEnable (GL_BLEND); // Enable blending.
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // Setup blending function.
我想在你的情况下,纹理不会与背景混合,它只是简单地替换背景。我明白了,你有什么建议来阻止它替换我的背景吗?渲染遮罩纹理后是否应该渲染背景?您需要使用混合。如果禁用混合,纹理中的透明像素将替换背景像素。如果使用混合,透明像素将不会替换背景像素。