【问题标题】:create Texture with ONE channel in iOS在 iOS 中使用 ONE 通道创建纹理
【发布时间】:2013-12-28 00:41:04
【问题描述】:

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

这很好用,我为此使用了 RGB 纹理。然后创建纹理的数据是: 1、0、0、2、0、0、3、0、0。

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

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

谁能确认或告诉我如何在 iOS 中仅使用一个通道创建纹理?

感谢您的任何提示, 托尔斯滕。

【问题讨论】:

  • 如果每个对象只有一种颜色,你不能只使用一个微小的纹理并让 GL 拉伸它以适应吗?甚至直接将颜色发送到着色器。

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-21
    • 1970-01-01
    • 1970-01-01
    • 2014-03-12
    • 1970-01-01
    • 2015-12-26
    相关资源
    最近更新 更多