glReadPixels 的 OpenGL DSA 等效项

Posted

技术标签:

【中文标题】glReadPixels 的 OpenGL DSA 等效项【英文标题】:OpenGL DSA equivalent for glReadPixels 【发布时间】:2021-05-21 13:34:46 【问题描述】:

我正在尝试从附加到未绑定帧缓冲区的渲染缓冲区中检索像素值。 由于我试图避免在读取所述值时更改全局状态,因此我无法使用glReadPixels([...]),它通常用于从当前绑定的帧缓冲区中读取像素。

DirectStateAccess 方法通常可以解决这个问题,但我找不到允许直接指定读取操作源的方法。

是否可以以不同的方式读取像素,而不必绑定关联的Framebuffer?为什么这个方法没有被包含在 DSA 扩展中?

【问题讨论】:

"来自附加到未绑定帧缓冲区的渲染缓冲区的像素值。" 绑定时无法读取是否有原因? 【参考方案1】:

如果帧缓冲区附件是Texture 而不是Rrenderbuffer,则可以使用glGetTextureImage 从纹理对象而不是帧缓冲区中读取像素数据。

【讨论】:

以上是关于glReadPixels 的 OpenGL DSA 等效项的主要内容,如果未能解决你的问题,请参考以下文章

opengl glReadPixels

OpenGL glReadPixels 性能

在 Opengl ES 中在 FBO 上调用多个 glReadPixels 和 glDrawArrays

OpenGL ES glReadPixels exc_bad_access

glReadPixels 保存到 BMP - 颜色失真

OpenGL 纹理 DSA 不显示纹理