TransWikia.com

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

Stack Overflow на русском Asked on December 3, 2020

Как сделать что бы один объект перекрывал другой… Тот объект который в цикле был последний рисуется сверху. А как сделать что бы рисовался сверху тот у которого больше значение 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);
}

без буфера

с буфером

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP