我正在使用 OpenGL 进行一些 GPGPU 编程。
我希望能够将我所有的数据写入格式为 GL_R8 的一维纹理,这样我基本上就可以将其视为一个 std:array
对象。
然后在渲染期间我希望能够设置 GPU 应该如何读取图像,例如“转换”到 1024x1024 BGRA。
这可能吗?
例如我希望能够做什么:
gpu::array<uint8_t> data(GL_R8, width*height*4);
gpu::bind(data, GL_TEXTURE0, gpu::format::bgra, width, height);
最佳答案
然后使用 buffer texture .没有规则(据我所知)说你不能将同一个缓冲区连接到多个不同的纹理。这将允许一个纹理以 GL_R8 内部格式使用它。另一个纹理可以使用 GL_RGBA8 格式。
关于c++ - "cast"GL_R8 到 GL_BGRA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8939332/