关于glBlitFramebuffer操作GL_DEPTH_STENCIL_ATTACHMENT的技术疑问
解答
第一个操作的结果:仅复制深度数据。
虽然帧缓冲用GL_DEPTH_STENCIL_ATTACHMENT把深度和模板数据存在同一张纹理里,但glBlitFramebuffer的掩码参数(此处为GL_DEPTH_BUFFER_BIT)是精确控制复制范围的开关。指定深度掩码时,OpenGL只会读取并复制纹理中的深度分量,完全不会处理模板数据。替换掩码为
GL_STENCIL_BUFFER_BIT的结果:仅复制模板数据。
同理,当掩码指定为GL_STENCIL_BUFFER_BIT时,OpenGL会读取联合纹理中的模板分量,将其复制到默认帧缓冲的模板附件(前提是默认帧缓冲具备模板缓冲能力),不会对深度数据做任何操作。
内容的提问来源于stack exchange,提问作者Irbis
相关产品推荐
相关产品推荐

