我将一个 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 可以正常工作)。我在查找后检查了两个向量——它们在所有字段中都有有效值。
我已经尝试过 fx*Hx,以及我能想到的所有组合.. 我什至尝试在片段着色器中进行乘法 - 也不起作用..
编辑简化的顶点着色器(当我通过 colorcheck=1.0/fx/Hx 时也不起作用/起作用。任何东西)
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 - 结果我也不能减去/添加它们..