glblitframebuffer需要匹配的内部格式,那么默认framebuffer的深度组件的内部格式是什么?有标准吗?我找不到它的文档。
我的笔记本电脑的nvidia卡需要GL_DEPTH_COMPONENT24。但是有16个和32个选项。我想知道其他供应商的情况是否不同。
很少有充分的理由将FBO的深度闪电式传输到默认深度缓冲区。如果要渲染到一个FBO,并且需要在blit之后进行渲染,则最好将该渲染到另一个FB奥,然后blit到默认帧缓冲区。
也就是说,当您创建OpenGL上下文时,您可以要求默认深度缓冲区存储一定数量的位。如何做到这一点取决于您如何创建上下文。
但是,实现不一定要符合您的要求。所以你需要问问你收到了什么。您需要使用glGetFramebufferAttachmentParameter
。这样,您就可以从GL_DEPTH
附件中查询GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE
。