我在一个文件中有16位数据,我试图将其加载到iOS上的OpenGL亮度纹理中。如果我手动将16位值重新调整为8位,我可以按如下方式加载和显示数据:
glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, width, height, 0, GL_LUMINANCE,GL_UNSIGNED_BYTE,
(void*)data_8bit);
但是我可以让glTexImage2D从16位转换到8位吗?
查看OpenGL 2.0规范,16位类型的允许值为:
GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_4_4_4_4 GL_UNSIGNED_SHORT_5_5_5_1
没有GL_UNSIGNED_SHORT,我认为我不能使用上述任何一种。
我使用的是iOS 5.1和Xcode 4.3.2。