OpenGL透明纹理问题
我对alpha通道的纹理有问题。我正在渲染一棵有叶子的棕榈树: 但正如你所看到的,天空覆盖着图片左侧的树叶 在我的代码中,渲染天空,然后渲染树。 下面是我渲染一棵棕榈树的代码:OpenGL透明纹理问题,opengl,textures,alpha,blend,Opengl,Textures,Alpha,Blend,我对alpha通道的纹理有问题。我正在渲染一棵有叶子的棕榈树: 但正如你所看到的,天空覆盖着图片左侧的树叶 在我的代码中,渲染天空,然后渲染树。 下面是我渲染一棵棕榈树的代码: RenderFrame(0);//trunk //glColor3f(0.0, 0.6, 0.0); glEnable(GL_BLEND); glDisable(GL_CULL_FACE); glBlendFunc(GL_SRC_ALPHA
RenderFrame(0);//trunk
//glColor3f(0.0, 0.6, 0.0);
glEnable(GL_BLEND);
glDisable(GL_CULL_FACE);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
leaves.RenderFrame(0);
glEnable(GL_CULL_FACE);
glDisable(GL_BLEND);
正如其他人所说,渲染的顺序似乎是错误的。我曾经遇到过这个问题,它不是一个简单的解决方案,特别是因为您使用的是不推荐的立即模式。在这个问题中看一下这些解决方案:您是否启用了深度测试?如果是的话,树叶可能就在天空后面,被深度测试消除了。更糟糕的是。我看见树叶落在其他物体后面。我认为它必须被分类(从最远的摄像机到最近的摄像机)。。。