フレーム バッファー オブジェクトを使用して、色と深度のレンダリング バッファーを作成し、FBO にアタッチしました。
//set up color buffer for rendering
glGenRenderbuffers(1, &my_fbo_params.color_rb[i]);
glBindRenderbuffer(GL_RENDERBUFFER, my_fbo_params.color_rb[i]);
glRenderbufferStorage(GL_RENDERBUFFER, GL_RGB565, width, height);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, my_fbo_params.color_rb[i]);
//set up depth buffer
glGenRenderbuffers(1, &my_fbo_params.depth_rb[i]);
glBindRenderbuffer(GL_RENDERBUFFER, my_fbo_params.depth_rb[i]);
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT16, width, height);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, my_fbo_params.depth_rb[i]);
これはすべて問題なく、うまく機能しています。次のシーンに進むとき、カラー バッファは保持したいが、デタッチ バッファはデタッチしてアンバインドしたい。次のコードがデタッチを行うことを学びました:
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, 0);
しかし、カラー バッファをそのまま維持しながら深度バッファのバインドを解除するにはどうすればよいでしょうか。