将8位alpha纯纹理传递给GLSL

Erk*_*ing 1 opengl textures alpha glsl

如何将8位alpha-only纹理传递给GLSL?

Nic*_*las 6

您没有说明您正在使用的OpenGL版本.但实际上,由于您使用的是GLSL,因此您不应该关心每像素8位数据是否在alpha组件中.你关心的是你的纹理数据只有一个通道,它是每像素8位,并且它可以被一个已知的组件访问.

GL 3.x +提供GL_R8 图像格式.在此之前,你可以使用GL_INTENSITY8(从核心OpenGL 3.1中删除).不同之处在于GL_R8只将单个通道置于红色组件中,因此GB为0,A为1.强度格式将单个通道广播到所有四个组件中,因此RGBA将各自为相同的值.

您的着色器不需要更改.只需获取采样值的红色分量.