OpenGL-ES 1.1 iPhone - Depth Buffer Calls Up Magenta Screen

I have an iPhone OpenGL-ES 1.1 project that displays simple 3D models. If I do not attach a depth buffer, it does everything correctly (except, of course, without understanding the depth). However, when I attach the depth buffer, everything that is displayed is a magenta screen. Clear color is not set to magenta. It is blue. Does anyone know what is going on here. This is my installation code =>

    glGenFramebuffersOES(1, &framebuffer);
    glBindFramebufferOES(GL_FRAMEBUFFER_OES, framebuffer);

    glGenRenderbuffersOES(1, &colorRenderbuffer);
    glBindRenderbufferOES(GL_RENDERBUFFER_OES, colorRenderbuffer);
    glRenderbufferStorageOES(GL_RENDERBUFFER_OES, GL_RGBA8_OES, screenWidth, screenHeight);
    glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, colorRenderbuffer);

    glGenRenderbuffersOES(1, &depthRenderbuffer);
    glBindRenderbufferOES(GL_RENDERBUFFER_OES, depthRenderbuffer);
    glRenderbufferStorageOES(GL_RENDERBUFFER_OES, GL_DEPTH_COMPONENT16_OES, screenWidth, screenHeight);
    glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES, GL_RENDERBUFFER_OES, depthRenderbuffer);

This gives a magenta screen. Commenting the last 4 lines will display objects.

+3
source share
1 answer

Is your screenWidth / screenHeight probably not initialized yet?

, : glRenderbufferStorageOES (GL_RENDERBUFFER_OES, GL_DEPTH_COMPONENT16_OES, 320, 480);

+2

Source: https://habr.com/ru/post/1758757/


All Articles