为什么在纹理四边形顶部呈现三角形?

时间:2014-12-04 19:48:30

标签: opengl

使用与上一个问题Rendering quad with tiling image?中相同的代码,我不明白为什么三角形不会在纹理四边形上呈现。

有人可以指出我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

您已启用深度测试,默认为较少(仅接近绘制的像素)。

如果你想要背景,那么在第一次通过时禁用深度书写。

void GLViewer::paintGL()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glDepthMask(GL_FALSE);
    glDisable(GL_DEPTH_TEST);

    m_backgroundShader.bind();
    glBindVertexArray(m_backgroundVAO);
    glActiveTexture(GL_TEXTURE0);
    glBindTexture(GL_TEXTURE_2D, m_textureID);
    glUniform1i(glGetUniformLocation(m_backgroundShader.programId(),"tex"),0);
    glDrawArrays(GL_TRIANGLE_STRIP,0,4);

    glDepthMask(GL_TRUE);
    glEnable(GL_DEPTH_TEST);
    m_triangleShader.bind();
    glBindVertexArray(m_VAO);
    glDrawArrays(GL_TRIANGLES, 0, 3);

    update();
}