如何在模型中修复混合或深度模式

时间:2014-04-17 11:19:27

标签: opengl opengl-es libgdx shader

我无法弄清楚问题,但可能是问题所在 混合或深度测试。

使用的混合功能是

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

这些是没有glDepthFunc函数的输出

将此作为输出 Output

enter image description here

这应该是这样的

1 个答案:

答案 0 :(得分:1)

透明的颜色表明它首先绘制了草莓的茎,然后是浆果本身。根据经验,您应该渲染不透明的表面,在半透明表面之前,茎的叶子是半透明的(叶子不是实际的多边形)。绘制时,您启用了深度缓冲。这会导致bery碎片被拒绝,理由是叶子/茎干的“半透明”碎片已经被绘制(并且更靠近相机/视图)。

更改顺序是一个简单的步骤,可以阻止它生成图示的工件,因为具有“furtest”深度的对象的片段在具有“最近”深度的片段之前呈现。换句话说,深度缓冲区会导致片段被接受,而不是被拒绝。