OpenGL beginner here. I was hoping I could do something like transmit a texture using GL_RED and R8, but then have my shader produce a fully colored result. At present even if my shader writes the green and blue colors, they are ignored and I get varying shades of red on the screen. However, if I use swizzle masks and tell it to pull green and blue from the red, I get a nice grayscale image. I want not grayscale, but to treat my unsigned byte as a color map... i.e., different values correspond to different colors. This would save a lot of space, but I can't get the idea to work. This is for 2D textures. Is this possible and I'm doing something wrong, or do I have to switch to an internal GL_RGB format in order to have my shader produce a colored texture?