【发布时间】:2010-10-20 09:48:41
【问题描述】:
我有一个带有颜色和深度附件的 FBO 对象,我使用glReadPixels() 对其进行渲染并从中读取,我正在尝试为其添加多重采样支持。
而不是glRenderbufferStorage(),我为颜色附件和深度附件调用glRenderbufferStorageMultisampleEXT()。帧缓冲区对象似乎已成功创建并报告为完成。
渲染后,我尝试使用glReadPixels() 读取它。当样本数为 0 时,即禁用多重采样时,它工作得很好,我得到了我想要的图像。当我将样本数设置为其他值时,例如 4,帧缓冲区仍然可以正常构建,但 glReadPixels() 失败并显示 INVALID_OPERATION
有人知道这里出了什么问题吗?
编辑:glReadPixels 的代码:
glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, ptr);
其中 ptr 指向宽度*高度单位的数组。
【问题讨论】:
-
您能否发布您的 glReadPixels() 调用的完整行(格式、类型等)?
标签: opengl fbo multisampling