OpenGL图像加载/存储24位RGB图像

时间:2016-06-24 18:47:21

标签: opengl textures rgb opengl-4 image-unit

对于24位RGB(3个8位通道)图像,glBindImageTexture看起来没有image format。我的纹理具有GL_RGB8类型的内部格式(24位RGB图像)。不幸的是,我不能轻易地改变我在运行时绑定到图像单元的纹理类型 - 是否可以使用不同的图像格式和imageLoad并仍然可以访问24位RGB数据?

1 个答案:

答案 0 :(得分:3)

不,您不能将GL_RGB8用于图像加载/存储。这样做是因为允许实现通过用GL_RGB8替换它来支持GL_RGBA8。但如果他们可以直接支持3组件格式,他们也不允许这样做。因此,作为规范的OpenGL不知道实现是否实际上可以处理每像素24位或者假装是否使用32位纹理。

所以OpenGL只是迫使明确地进行替换。