gpt4 book ai didi

c++ - OpenGL 纹理透明度

转载 作者:搜寻专家 更新时间:2023-10-31 00:48:47 24 4
gpt4 key购买 nike

我正在使用 C++ 和 OpenGL 制作一个基本的 2D 游戏,我有一个带有透明区域的 png 图像供我的播放器使用。它在我的笔记本电脑和实验室计算机上完美运行,但在我的台式机上,整个图像大部分都是透明的,而不仅仅是本来应该是的区域。什么可能导致/解决这个问题?

这是我用过的代码,在所有机器上都是一样的

glPushMatrix(); 
glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBindTexture(GL_TEXTURE_2D, playerTex);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);

glTranslatef(XPos, YPos, 0.0);
glRotatef(heading, 0,0,1);
glBegin(GL_POLYGON);
glTexCoord2f(0.0, 1.0); glVertex2f(-40,40);
glTexCoord2f(0.0, 0.0); glVertex2f(-40,-40);
glTexCoord2f(1.0, 0.0); glVertex2f(40,-40);
glTexCoord2f(1.0, 1.0); glVertex2f(40,40);
glEnd();

glDisable(GL_BLEND);
glDisable(GL_TEXTURE_2D);
glPopMatrix();

最佳答案

我发现问题了,我改

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);

它工作正常,但不确定为什么。

关于c++ - OpenGL 纹理透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2302487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com