所以我正在为我的大学任务做一个简单的opengl/SDL项目。纹理和背景混合一点
基本上是一个非常简单的游戏,角色在屏幕上移动。
我快完成了,但我遇到了一个问题。
所以,当我加载纹理等,他们混合在一起,“发光”通过对方。
下面是一个例子:
左 - 红色背景颜色glClearColor(1.0F,0.0F,0.0F,0.0F); 中东 - 绿色的背景颜色
右键 - 黑色背景
正如你所看到的,背景的影响在它前面的纹理,我真的不喜欢。
黑色背景是好的(使我的纹理有点暗),我可以忍受它,但正如你所看到的,黑色背景下,我们可以看到vader背后的一些纹理。
这是他的肩膀上最引人注目的。而是保持纹理完全不透明并保持原有颜色。
要删除Alpha通道,我使用
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
,但我觉得这并不是因为它融合了所有的纹理在一起,很好地做到这一点的最好办法。
有没有办法保持图像完全不透明,同时保持alpha通道,所以周围没有东西?
你是什么意思“删除alpha通道”和“同时保持alpha通道”?目前还不清楚你想要做什么。 – comingstorm
确保你背部的地形有1的阿尔法。 – dari
我的意思是我不希望它是透明的,只是100%不透明,但同时没有任何图像的区域(如他的腿之间)应该看到通过这样我可以看到背景。 – Macko