0

OpenGL 3.3 GLSL 1.5 互換性を使用しています。頂点データで奇妙な問題が発生しています。フラグメント シェーダーにインデックス値を渡そうとしていますが、カメラの位置によって値が変化するようです。

これは単純なはずです。頂点シェーダーを介して GLfloat をフラグメント シェーダーに渡します。次に、この値を符号なし整数に変換します。値は、フラグメントのエッジを除いて、ほとんどの場合正しいです。何をしても同じ歪みが現れます。カメラの位置によってこの値が変わるのはなぜですか? 以下のばかげた例でも、tI は不規則に 1.0 以外の値になります。

uint i;
if (tI == 1.0) i = 1;
else i = 0;
vec4 color = texture2D(tex[i], t) ;

float データの代わりに整数データを送信すると、まったく同じ問題が発生します。頂点データとして何を入力しても問題ないようです。データに入力した値がフラグメント全体で一貫していません。歪みは毎回まったく同じに見えます。

値はフラグメントのエッジに沿って 1.0 と等しくありません

4

1 に答える 1