I have create a single channel alpha image:
mask1 = new unsigned char[720* 480];
for(unsigned int i = 0; i < 480; i++) {
for(unsigned int j = 0; j < 720; j++) {
mask1[i * 480 + j] = alpha;
}
}
and load it using:
glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, 720, 480, 0, GL_ALPHA,
GL_UNSIGNED_BYTE, mask1);
or
glTexImage2D(GL_TEXTURE_2D, 0, GL_R8, 720, 480, 0, GL_RED,
GL_UNSIGNED_BYTE, mask1);
in glsl:
vec4 color.r = texture(alpha_mask, v_texCoord).a;
v_texCoord is the four corner (0,0 -> 1,1), but the output image is much smaller;.