c++ - "cast"GL_R8 到 GL_BGRA

标签 c++ opengl textures gpgpu

我正在使用 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/

相关文章:

c++ - 我的温度转换有什么问题?

c++ - XSD union 上的 QXmlSchemaValidator 段错误

c++ - 是否有一种优雅的方式来处理 Windows OpenGL 应用程序中全屏和窗口模式之间的切换?

c++ - 无法在 OpenGL 中随时间改变颜色

java - LWJGL 中的纹理球体

objective-c - 翻转 OpenGL 纹理

c++ - Makefiles,从 VC6 迁移到 Visual Studio 2010

c++ - 为什么 RegOpenKeyEx 让我打开注册表编辑器中不存在的 key ?

java - 测试了一些 LWJGL OpenGL,不会生成盒子。我应该怎么办?

ios - 将 2 个纹理传递到 FragmenShader