所以我正在为我的大学任务制作一个简单的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通道,所以它周围没有东西?
答案 0 :(得分:-1)
好的,我已经修好了。 事实证明,我在着色器中有一段代码可以融合所有内容。