1
在实施广告牌对象,以我的引擎我遇到一个问题(下图)纹理的alpha通道覆盖背景对象
,你可以看到广告牌的对象涵盖了后台的一切(天空盒似乎是一个例外)。而且这并不是我想要的工作方式。我不知道问题在哪里。
我的片段着色器是非常简单的:
#version 330
uniform sampler2D tex;
in vec2 TexCoord;
out vec4 FragColor;
void main()
{
FragColor = texture2D(tex, TexCoord);
}
和广告牌是在几何着色器只是做三角形带。
所有想法都不错。
尝试'if(color.a == 0.0)discard;'参考http://en.wikibooks.org/wiki/GLSL_Programming/GLUT/Transparent_Textures以获得更多信息 –
我使用了一个阈值构思if(FragColor.a <0.9)丢弃;'它似乎工作。说实话,它看起来并不是很好的解决方案,但现在它比以前更好用 –
检查[“混合可以用来使对象看起来透明,但是单独混合是不够的,有很多步骤你必须采取措施使透明度发挥作用......“](http://www.opengl.org/wiki/Transparency_Sorting) –