我无法弄清楚问题,但可能是问题所在 混合或深度测试。
使用的混合功能是
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
这些是没有glDepthFunc
函数的输出
将此作为输出
这应该是这样的
答案 0 :(得分:1)
透明的颜色表明它首先绘制了草莓的茎,然后是浆果本身。根据经验,您应该渲染不透明的表面,在半透明表面之前,茎的叶子是半透明的(叶子不是实际的多边形)。绘制时,您启用了深度缓冲。这会导致bery碎片被拒绝,理由是叶子/茎干的“半透明”碎片已经被绘制(并且更靠近相机/视图)。
更改顺序是一个简单的步骤,可以阻止它生成图示的工件,因为具有“furtest”深度的对象的片段在具有“最近”深度的片段之前呈现。换句话说,深度缓冲区会导致片段被接受,而不是被拒绝。