首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >乘法采样器查找glsl

乘法采样器查找glsl
EN

Stack Overflow用户
提问于 2012-06-16 07:06:38
回答 1查看 232关注 0票数 1

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

代码语言:javascript
复制
    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,以及我能想到的所有组合..我甚至尝试了在碎片着色器中进行倍增-也不会起作用。

编辑简化的顶点着色器(也不起作用/当我传递colorcheck=1.0/f.x/H.x.任何内容)

代码语言:javascript
复制
    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;
   }

和片段着色器:

代码语言:javascript
复制
varying float colorcheck;
void main()
{
    gl_FragColor=vec4(colorcheck,1,1,1.0);
}

谢谢你的帮忙!

EDIT2 -原来我也不能减法/加法..

EN

回答 1

Stack Overflow用户

发布于 2012-06-16 08:37:47

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11059226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档