Colors iPhone的OpenGL颜色索引';s OpenGL ES 1.1?

Colors iPhone的OpenGL颜色索引';s OpenGL ES 1.1?,colors,opengl-es,color-palette,Colors,Opengl Es,Color Palette,是否可以在openGL ES 1.1中使用颜色托盘 我目前正在开发一款有玩家精灵的游戏,玩家精灵需要能够改变为不同球队的颜色。例如,更改衬衫的颜色而不是面部颜色,这排除了简单的色调旋转 这是可能的,还是必须手动实现(直接修改纹理数据)?这不是MBX的硬件功能,但从iPhone SDK快速检查ES 1.x的gl.h会发现gl\u PALETTE4\u RGB8\u OES,GL\u PALETTE8\u RGBA8\u OES和其他一些常量可根据手册页传递到glcompressedEximage2

是否可以在openGL ES 1.1中使用颜色托盘

我目前正在开发一款有玩家精灵的游戏,玩家精灵需要能够改变为不同球队的颜色。例如,更改衬衫的颜色而不是面部颜色,这排除了简单的色调旋转


这是可能的,还是必须手动实现(直接修改纹理数据)?

这不是MBX的硬件功能,但从iPhone SDK快速检查ES 1.x的gl.h会发现
gl\u PALETTE4\u RGB8\u OES
GL\u PALETTE8\u RGBA8\u OES
和其他一些常量可根据手册页传递到
glcompressedEximage2D
。因此,您可以将带有选项板的纹理传递给它,但我敢打赌,驱动程序只会在CPU上将它们转换为RGB纹理,然后将它们上载到GPU。我不认为苹果支持这些类型的压缩纹理是因为它们是ES1.x规范的一部分


在ES2.x上,您可以自由地做任何您想做的事情。您可以轻松地将调色板作为一种纹理上传(例如,(x,0)处的像素是调色板索引x的颜色),将调色板纹理作为另一种纹理上传。然后,您将使用两个纹理单元来完成绘制片段时可能需要完成的工作,因此请根据您自己的判断来判断您是否负担得起。

这不是MBX的硬件功能,但从iPhone SDK快速检查ES 1.x的gl.h会发现
gl_PALETTE4_RGB8_OES
GL\u PALETTE8\u RGBA8\u OES
和其他一些常量可根据手册页传递到
glcompressedEximage2D
。因此,您可以将带有选项板的纹理传递给它,但我敢打赌,驱动程序只会在CPU上将它们转换为RGB纹理,然后将它们上载到GPU。我不认为苹果支持这些类型的压缩纹理是因为它们是ES1.x规范的一部分


在ES2.x上,您可以自由地做任何您想做的事情。您可以轻松地将调色板作为一种纹理上传(例如,(x,0)处的像素是调色板索引x的颜色),将调色板纹理作为另一种纹理上传。然后,您将使用两个纹理单元来完成绘制片段时可能需要完成的工作,因此,请根据您自己的判断,判断您是否负担得起。

请记住,除了非mipmapped GL_最近的纹理单元之外,任何其他纹理单元都会在调色板索引之间混合。我最终在解压方法中扩展了调色板纹理,然后将它们上传为BGRA32。(GLES 2.0)

请记住,除了非mipmapped GL_NEAREST之外的任何内容都会在调色板索引之间混合。我最终在解压方法中扩展了调色板纹理,然后将它们上传为BGRA32。(2.0)