为什么GLSL中的texture1d()返回vec4?

时间:2010-11-05 06:09:53

标签: glsl shader vertex-shader

我正在尝试在我的顶点着色器中使用一维数组作为查找表..所以当我调用时为什么

texture1D(tex,gl_TexCoord[0].s);

它会返回vec4吗?我的意思是我知道它的作用是什么,但4个值代表什么?我想要的只是基于坐标的纹理中的一个值。

1 个答案:

答案 0 :(得分:3)

因为texture1D可以/具有RGBA值(红色,绿色,蓝色,alpha)。如果将1D纹理数据存储在红色通道(GL_RED)中,则可以使用以下命令访问该数据:

texture1D(tex,gl_TexCoord[0].s) .r