Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
使用 OpenGL,我已将图像上传到纹理中:
glTexImage2D (GL_TEXTURE_2D, 0, GL_RGB, imageWidth, imageHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, imageData);
现在,我想看看我是否可以在 OpenGL 的帮助下分离我的通道?例如,能够将我的红/绿/蓝通道分别存储在单独的缓冲区中?这对OpenGL来说很容易吗?
RGB纹理可以被视为 3 个单独的缓冲区,但可以跨步保存在内存中。但是,如果您需要使用三个单独的连续缓冲区,则GL_RED可以使用格式,您可以使用 3 次,每次用于一个通道。
RGB
GL_RED
要从这种数据中绘制,您必须将数据放回一个缓冲区,或者使用一次从 3 个纹理中采样的着色器:
vec2 tc; sampler2d red, green, blue; my_out_color = vec4(texture(red, tc).r, texture(green, tc).r, texture(blue, tc).r, 1.0);