Filter channel planes!


how do I separate the different RGB planes in OpenGL? Right now Im “cooking” all pixel data to get separate r/g/b channels, it must be possible to just show one channel of a buffer instead of doing it using software, right?

// Mike

I don’t know about only showing a single channel, but you can write to just a single channel and then displaying this normally will in essence give you that effect.
glColorMask() is the function that might be what you are looking for to do this.


If performance is a consideration, using color mask with anything but all or none of the color channels may result in a performance hit, because some cards (I think NVIDIA cards in general, and possibly not ATI cards) must perform a read/modify/write to all the written pixels. The hit would be similar to blend, so it’s not that big a deal in terms of frame buffer bandwidth unless you’re tripling the number of passes (one per color channel for example), not to mention increasing the geometry load, etc.