gpt4 book ai didi

ios - 是否可以在 OpenGL ES 2.0/iOS 上渲染到 8 位纹理帧缓冲区?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:20:08 25 4
gpt4 key购买 nike

我需要将某些内容渲染到屏幕外缓冲区,然后通过调用 glReadPixels 将像素读回“CPU 内存”。我的代码在 Windows 下编译为普通 OpenGL 时运行良好,但要使其在 iOS 中的 OpenGL ES 2.0 下运行,我必须将 GL_ALPHA(或 GL_LUMINANCE)纹理替换为一个GL_RGBA,意思是

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,  width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);

代替

glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA,  width, height, 0, GL_ALPHA, GL_UNSIGNED_BYTE, NULL);

我无法使用 8 位纹理运行代码。

但是由于我不需要此渲染中的全色,因此每个像素额外的 3 个字节被浪费了。在我再次尝试之前,这里是我的问题:

有没有人成功地离屏渲染到 8 位纹理并将字节读回 CPU 内存?有可能吗?

最佳答案

将 glRenderbufferStorage 格式设置为 GL_R8_EXT,将 glReadPixels/glTexImage2D 格式设置为 GL_RED_EXT。

http://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_rg.txt

http://developer.apple.com/library/ios/#releasenotes/General/WhatsNewIniPhoneOS/Articles/iOS5.html#//apple_ref/doc/uid/TP30915195-SW47

编辑:我已经对此进行了测试并且它有效,但仅适用于 A5 及更高版本(iPad2/3/4/mini、iPhone4S/5、第 5 代 iPod touch)。不幸的是,它在最需要它的 A4 及更早机型(iPhone4、iPod touch 4th gen、3GS、iPad1)上不可用。

关于ios - 是否可以在 OpenGL ES 2.0/iOS 上渲染到 8 位纹理帧缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12217382/

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