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



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

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

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

相关内容

  • 没有找到相关文章