代码之家  ›  专栏  ›  技术社区  ›  jakeva

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

  •  5
  • jakeva  · 技术社区  · 14 年前

    我正在尝试使用1D数组作为顶点着色器中的查找表。。为什么我打电话来

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

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

    1 回复  |  直到 14 年前
        1
  •  3
  •   Rabbid76    7 年前

    因为纹理1d可以/具有RGBA值(红色、绿色、蓝色、alpha)。如果将1D纹理数据存储在红色通道(GL_red)中,则可以通过以下方式访问该数据:

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