乘以采样器查找glsl

时间:2012-06-15 23:06:38

标签: glsl

我将1D数组作为sampler1D和2D数组(基本上是矩阵)作为sampler2D传递给我的顶点着色器。 一切正常 - 我检查了价值观,每一个价值都应该是它应有的位置。 但是 - 我似乎无法将这些采样器的两个值相乘。

    float pos=0.0;
    vec4 f = texture1D(xk,ki);
    vec4 H = texture2D(er,vec2(0,i));

    pos=f[0]*H[0];
    colorcheck=pos;

我将colorcheck传递给我的片段着色器,但它不会渲染我的对象,而是一切都只是黑色(传递colorcheck = 1.0工作正常)。我在查找后检查了两个向量 - 在所有字段中都有有效值。

我已经尝试了f.x * H.x,以及我能想到的所有组合..我甚至尝试在片段着色器中进行乘法 - 也不会工作..

EDIT 简化的顶点着色器(当我通过colorcheck = 1.0 / f.x / H.x ..任何东西时,它都不起作用/工作)

    uniform sampler1D xk;
    uniform sampler2D eigenraum;
    varying float colorcheck;
    void main(){
       vec4 f = texture1D(xk,0);
       vec4 H = texture2D(eigenraum,vec2(0,0));
       colorcheck=f[0]*H[0];
       gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
   }

和片段着色器:

varying float colorcheck;
void main()
{
    gl_FragColor=vec4(colorcheck,1,1,1.0);
}

感谢您的帮助!

EDIT2 - 结果我不能减去/添加它们..

1 个答案:

答案 0 :(得分:1)

我找到了解决方案 - 它不在着色器代码中。在将数组绑定到纹理时,我忘记了glActiveTexture调用!