在iOS应用程序中,我想在对象上放置纹理,渲染场景,将其读回,然后读取该对象的“颜色”以识别它。
这很好用,我使用RGB纹理。从那里创建纹理的数据是: 1,0,0,2,0,0,3,0,0。
这需要相当多的RAM,浪费66%。我想使用只有一个通道的纹理。
阅读glTexImage2D的OpenGL规范,我认为使用格式GL_RED是可行的方法,但它似乎在iOS中不可用。
任何人都可以确认或告诉我如何在iOS中只使用一个频道创建纹理吗?
感谢任何提示, 托。
答案 0 :(得分:4)
最新的iOS设备(> iOS 5.0)应该支持EXT_texture_rg
,这允许使用GL_RED_EXT
和{{1}创建单通道和双通道渲染缓冲区(和纹理)纹理格式枚举。但是,您应该通过调用GL_RG_EXT
并检查glGetString(GL_EXTENSIONS)
的返回值来查询是否存在扩展名。