iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在iOS上从OpenGL ES 3.0读取RGB8缓冲区?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我真的需要从GPU获得每个通道的RGB 8字节缓冲区.
我需要它传递给训练有素的卷积神经网络,它只接受该格式的数据.
我不能在cpu上转换它,因为我受到很大的cpu限制而且它很慢.

我目前有附加渲染缓冲区的FBO,其定义为:

glRenderbufferStorage(GL_RENDERBUFFER,GL_RGB8_OES,bufferWidth,bufferHeight);

绑定,定义和呈现缓冲区时没有错误.

但是当我使用时

glReadPixels(0,bufferHeight,GL_RGB,GL_UNSIGNED_BYTE,rgbBufferRawName);

它给出了无效的枚举错误(0x0500).当我传递GL_RED_EXT或GL_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上从OpenGL ES 3.0读取RGB8缓冲区?全部内容,希望文章能够帮你解决在iOS上从OpenGL ES 3.0读取RGB8缓冲区?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。