我一直在寻找许多网站和LWJGL教程,我很惊讶地发现 解释如何创建使用的程序的内容并不多 透明纹理。
我用gimp去除了PNG背景中的白色 图像,它变成透明的棋盘,女巫似乎很好,当我在Windows照片查看器中打开它很好。
然而,当打开它进入我的程序时,它仍然在图像周围有白色方块,所以当两个不透明的图像碰撞时,它看起来很糟糕。
我认为到2012年,任何具有非透明纹理的游戏看起来都非常不专业。
我需要解决这个问题,所以有人请指出我正确的方向或解释如何解决问题。
请记住:我正在使用LWJGL和opengl纹理以及带有在gimp中编辑的PNG图像的opengl TextureLoader以获得透明背景。
答案 0 :(得分:0)
如果您正在使用默认管道检查如何使用glBlendFunction。
所以基本上你会告诉openGL如何将多个图像与alpha值混合。
此外,如果您正在使用glTexImage2D调用,请确保源像素格式为GL_RGBA。
答案 1 :(得分:0)
启用OpenGL后,在初始化代码中使用以下代码行:
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
它现在应该正常工作。
如果您需要解释:您只是告诉OpenGL将图像的Alpha通道与其下方的任何图像混合。