1
我绘制了两个纹理,先是纹理A然后是纹理B.我总是出现A始终高于b,即使纹理A的某些部分是完全透明的,它只显示背景颜色屏幕。这里的背景颜色意味着我用glClearColor
设置的颜色。然而,我改变了我的代码和图片,纹理的透明部分总是具有相同的背景颜色。无法使纹理透明
这是我的着色语言源代码。
precision mediump float;
uniform sampler2D u_sampler;
varying vec2 v_TexCoord;
void main() {
gl_FragColor = texture2D(u_sampler, v_TexCoord);
}
而且我已经启用了混合功能。
glEnable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
您也可以将深度func从GL_LESS切换到GL_LEQUAL。然而,切换到多纹理看起来像比这更好的解决方案。 – Kos
为什么我不能投两次票。这是答案。我已经考虑了两天,并且非常沮丧。你能给我一些建议,以防止再次发生这种情况。 (我已经阅读了相当多的日志文件)。 –
科斯的想法是一个,但是你必须使用两个绘制调用的完全相同的顶点,否则浮点舍入错误会伤害你。通常使用多纹理是最好的计划。看到这里的教程:http://nehe.gamedev.net/tutorial/bump-mapping,_multi-texturing_&_extensions/16009/ – Goz