Как работать в OpenGL с буфером глубины glEnable(GL_DEPTH_TEST)?

Как сделать что бы один объект перекрывал другой... Тот объект который в цикле был последний рисуется сверху. А как сделать что бы рисовался сверху тот у которого больше значение z? В моем коде с буфером глубины один из объектов вовсе исчезает... А что бы было перекрытие! как это сделать?

while (!glfwWindowShouldClose(window)) {

    glfwPollEvents();

    
    
    glClearColor(0.2f, 0.3f, 0.3f, 1.0f);

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    
    glEnable(GL_DEPTH_TEST);
    glDepthFunc(GL_LESS);

    glColor4f(1, 0, 0, 1);
    glEnableClientState(GL_VERTEX_ARRAY);
    glVertexPointer(3, GL_FLOAT, 0, quads1);
    glDrawArrays(GL_QUADS, 0, 4);
    glDisableClientState(GL_VERTEX_ARRAY);
    

    
    glColor4f(0, 1, 0, 1);
    glEnableClientState(GL_VERTEX_ARRAY);
    glVertexPointer(3, GL_FLOAT, 0, quads2);
    glDrawArrays(GL_QUADS, 0, 4);
    glDisableClientState(GL_VERTEX_ARRAY);
    
    

    glfwSwapBuffers(window);
}

без буфера

с буфером


Ответы (0 шт):