OpenGL до версии 2 имел текстуру внутреннего формата GL_LUMINANCE, которая делает именно то, что вы хотите.
В OpenGL-3 это было заменено внутренним форматом GL_R (GL_RED), который является текстурой одного компонента. В шейдере вы можете использовать алкоголь как
gl_FrontColor.rgb = texture().rrr;
Но есть также опция для установки "статического", который вы можете назвать его swizzle в параметрах текстуры:
glTexParameteri(GL_TEXTURE_…, GL_TEXTURE_SWIZZLE_R, GL_RED);
glTexParameteri(GL_TEXTURE_…, GL_TEXTURE_SWIZZLE_G, GL_RED);
glTexParameteri(GL_TEXTURE_…, GL_TEXTURE_SWIZZLE_B, GL_RED);