Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用纹理作为alpha遮罩的LWJGL_Java_Opengl_Lwjgl_Mask_Masking - Fatal编程技术网

Java 使用纹理作为alpha遮罩的LWJGL

Java 使用纹理作为alpha遮罩的LWJGL,java,opengl,lwjgl,mask,masking,Java,Opengl,Lwjgl,Mask,Masking,我正在用lwjgl和slick util创建一个2D游戏。对于我游戏中的一个特殊功能,我希望能够赋予纹理一定的不透明度。我已经设法弄明白了这一点,但下一步是给出一个纹理作为参数,这将使我能够在某些点上给出某些纹理和某些不透明性 注意:我之前已经让它工作过了,但是遮罩似乎也移除了我不想要的背景图像 我不能发布图片,因为我没有足够的声誉或其他东西,但无论如何,我想基本上做的是: 首先渲染背景图像 然后在上面渲染另一个带有遮罩的图像,我不希望这个遮罩应用到背景上 我该怎么做呢?我认为你使用了错误的

我正在用lwjgl和slick util创建一个2D游戏。对于我游戏中的一个特殊功能,我希望能够赋予纹理一定的不透明度。我已经设法弄明白了这一点,但下一步是给出一个
纹理
作为参数,这将使我能够在某些点上给出某些纹理和某些不透明性

注意:我之前已经让它工作过了,但是遮罩似乎也移除了我不想要的背景图像

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

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

我该怎么做呢?

我认为你使用了错误的混合模式。如果未更改默认混合模式,则需要:

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

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

我明白了,你有什么建议来阻止它替换我的背景吗?渲染遮罩纹理后是否应该渲染背景?您需要使用混合。如果禁用混合,纹理中的透明像素将替换背景像素。如果使用混合,透明像素将不会替换背景像素。