在iOS中使用ONE通道创建纹理

时间:2012-11-18 18:58:09

标签: ios opengl-es opengl-es-2.0

在iOS应用程序中,我想在对象上放置纹理,渲染场景,将其读回,然后读取该对象的“颜色”以识别它。

这很好用,我使用RGB纹理。从那里创建纹理的数据是: 1,0,0,2,0,0,3,0,0。

这需要相当多的RAM,浪费66%。我想使用只有一个通道的纹理。

阅读glTexImage2D的OpenGL规范,我认为使用格式GL_RED是可行的方法,但它似乎在iOS中不可用。

任何人都可以确认或告诉我如何在iOS中只使用一个频道创建纹理吗?

感谢任何提示, 托。

1 个答案:

答案 0 :(得分:4)

最新的iOS设备(> iOS 5.0)应该支持EXT_texture_rg,这允许使用GL_RED_EXT和{{1}创建单通道和双通道渲染缓冲区(和纹理)纹理格式枚举。但是,您应该通过调用GL_RG_EXT并检查glGetString(GL_EXTENSIONS)的返回值来查询是否存在扩展名。

相关问题