gpt4 book ai didi

ios - 从 iOS 上的 OpenGL ES 3.0 读取 RGB8 缓冲区?

转载 作者:可可西里 更新时间:2023-11-01 06:02:19 28 4
gpt4 key购买 nike

我真的需要从 GPU 获得一个 RGB 每 channel 8 字节缓冲区。我需要它传递给训练有素的卷积神经网络,它只接受那种格式的数据。我无法在 CPU 上转换它,因为我受 CPU 的严重限制而且速度很慢。

我目前有一个带有渲染缓冲区的 FBO,它定义为:
glRenderbufferStorage(GL_RENDERBUFFER, GL_RGB8_OES, bufferWidth, bufferHeight);
当我绑定(bind)、定义和渲染到缓冲区时没有错误。

但是当我使用
glReadPixels(0, 0, bufferWidth, bufferHeight, GL_RGB, GL_UNSIGNED_BYTE, rgbBufferRawName);
它给出了一个无效的枚举错误(0x0500)。当我传递 GL_RED_EXTGL_RGBA 并生成正确的缓冲区时它工作得很好(我已经通过将这些缓冲区上传到纹理并渲染它们来检查它,它们看起来是正确的) .

我尝试设置 glPixelStorei(GL_PACK_ALIGNMENT, 1); 但没有任何区别。

我在 iOS10 和 iPhone 6 上。我正在做 ES2.0,但现在尝试切换到 ES3.0,希望它能帮助我解决问题。它没有。

我非常感谢以任何方式获得 RGB8 缓冲区的帮助,谢谢。

最佳答案

根据 OpenGL 3.0 规范,GL_RGB 不是格式的有效值。

https://www.khronos.org/opengles/sdk/docs/man3/html/glReadPixels.xhtml

您可能希望在检索到 GL_RGBA 格式的缓冲区后将其转换为 RGB,或者调整您的算法以补偿 RGBA。

关于ios - 从 iOS 上的 OpenGL ES 3.0 读取 RGB8 缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41007800/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com