我正在编写一些2D卷积效果,其中一些只需要一个颜色通道。尽管我知道如何创建单通道GL_RED
纹理,但我不知道如何使OpenGL渲染管线的其余部分在单通道中工作:例如,glClearColor
始终指定四个颜色分量。实际上,我什至不知道将单通道GL_RED
纹理绑定到FBO的颜色附件是否有效。
作为备份选项,我仍然可以在RGBA中工作,并且仅使用一个通道。但这将浪费四倍的图形内存,我不喜欢它。
我知道这里有索引色彩模式。但是,它很复杂且已弃用,因此我不想使用它。
[经过一些实验,OpenGL在非RGBA通道上正常工作。对于GL_RED
,glClearColor
参数,texture
返回向量和内置gl_FragColor
内置的冗余绿色,蓝色和alpha通道只是被忽略/丢弃。