Opengl 加载并使用alpha通道位图

Opengl 加载并使用alpha通道位图,opengl,Opengl,考虑以下alpha通道位图: const int width = 4, height = 4; var alpha = new byte[width * height] { 255, 255, 255, 255, 0, 127, 127, 0, 0, 127, 127, 0, 255, 255, 255, 255 }; 我想将其加载到OpenGl中,并将其用作片段着色器: out vec4 color; void main() { flo

考虑以下alpha通道位图:

const int width = 4, height = 4;
var alpha = new byte[width * height] {
    255, 255, 255, 255,
      0, 127, 127,   0,
      0, 127, 127,   0,
    255, 255, 255, 255
};
我想将其加载到OpenGl中,并将其用作片段着色器:

out vec4 color;
void main() {
    float alpha = // Get pixel alpha like texture()
    color = vec4(1, 0, 0, alpha);
}

我知道可以使用RGBA位图纹理,但是否可以仅使用Alpha通道位图纹理?(根据最简单的
字节[]
类型)

您不需要使用alpha通道位图,您可以使用1通道位图纹理,如下所示:

glTexImage2D(GL_纹理,0,GL_红色,宽度,高度,0,GL_红色,GL_无符号字节,字节缓冲)

这里使用的是
GL_RED
我们是说我们只想要一个带有一个通道(红色)的纹理 因此,在片段着色器中,您可以执行以下操作:
float alpha=纹理(…).r

非常感谢!我正在尝试,不用担心!如果您需要进一步解释,请告诉我。@Rabbid76是的,我已更正,我对答案做了必要的更改。谢谢