1D 配列を sampler1D として、2D 配列 (基本的には行列) を sampler2D として頂点シェーダーに渡します。すべて正常に動作します - 値を確認しました。すべての値が本来あるべき場所にあります。BUT - これらのサンプラーの 2 つの値を互いに掛け合わせることができないようです。
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 - 減算/加算もできないことがわかりました..