在 iOS 应用程序中,我想在对象上放置纹理、渲染场景、读取它,然后读取该对象的“颜色”以识别它。
这很好用,我为此使用了 RGB 纹理。然后创建纹理的数据是:
1、0、0、2、0、0、3、0、0。
这需要相当大量的 RAM,浪费了 66%。我想使用只有一个 channel 的纹理。
阅读 glTexImage2D 的 OpenGL 规范在我看来,使用 GL_RED 格式是可行的方法,但它似乎在 iOS 中不可用。
任何人都可以确认或告诉我如何在 iOS 中仅使用一个 channel 创建纹理吗?
感谢您的任何提示,
托斯滕。
最佳答案
最新的 iOS 设备 (> iOS 5.0) 应该支持 EXT_texture_rg
,它允许使用 GL_RED_EXT
创建单 channel 和双 channel 渲染缓冲区(和纹理)和 GL_RG_EXT
纹理格式枚举。但是,您应该通过调用 glGetString(GL_EXTENSIONS)
来查询是否存在扩展。并检查 GL_EXT_texture_rg
的返回值)。
关于ios - 在 iOS 中使用 ONE channel 创建纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13443447/