我在项目中遇到了透明度问题。你可以看到,其他物体的透明度都正常 - 你可以看到树叶后面的犀牛,但问题出现在树本身上。当有两个树枝,其中一个比另一个更近时,较远的那个不可见。树干也是同样的情况。透明度对于对象本身就没有起作用。
这是我在创建纹理时使用的代码:
这是我在创建纹理时使用的代码:
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glGenTextures(1, &m_texture);
glBindTexture(GL_TEXTURE_2D, m_texture);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
if (color.a < 0.5) discard; else gl_FragColor = color;
。这很有帮助。现在我唯一的问题是,在我的光照设置下,当物体因光照而完全变黑时,片段会被丢弃。 - Karlos Otrubacolor = vec4(0,0,0,1)
,如果你观察到其他东西,那么你的光照代码中一定存在错误。 - Yakov Galka