0

我一直在查看许多站点和 LWJGL 教程,我惊讶地发现没有太多东西可以解释如何创建使用透明纹理的程序。

我用 gimp 去除了 PNG 图像背景中的白色,它变成了透明的棋盘,女巫看起来不错,当我在 windows 照片查看器中打开它时很好。

然而,当将它打开到我的程序中时,它仍然有图像周围的白色方块,所以当两个不透明的图像发生碰撞时,它看起来很糟糕。

我认为到 2012 年,任何具有非透明纹理的游戏看起来都非常不专业。

我需要解决这个问题,所以请有人指出我正确的方向或解释如何解决这个问题。

请记住:我正在使用 LWJGL 和 opengl Texture 和 opengl TextureLoader 以及在 gimp 中编辑的 PNG 图像以具有透明背景。

4

2 回答 2

0

如果您使用默认管道,请检查如何使用 glBlendFunction。

所以基本上你会告诉 openGL 如何将多个图像与 alpha 值混合。

此外,如果您使用 glTexImage2D 调用,请确保源像素格式为 GL_RGBA。

于 2012-12-26T06:36:49.033 回答
0

启用 OpenGL 后,在初始化代码中使用这行代码:

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

它现在应该可以工作了。

如果您需要解释:您只是告诉 OpenGL 将图像的 Alpha 通道与其下方的任何图像混合。

于 2013-01-02T02:45:35.200 回答