0

変換フィードバック関数を使用してみましたが、頂点の位置にのみ影響する2つの頂点シェーダーを作成しました。

1つ目は、パススルーシェーダーです。ここで、position out =positionin ;です。2つ目は、頂点位置のmodleview-projectionの結果です。ここで、position out = position in * mvp;

問題は、変換フィードバックバッファーをロックして読み取ると、データの順序がおかしいことに気づいたことです。私の入力データはvec3(3 floatの自己定義構造体)の配列であるため、データはx1、y1、z1のようになります。x2、y2、z2; x3、y3、z3; x4、y4、z4; x5、y5、z5; x6、y6、z6; ..。

しかし、変換フィードバックバッファーから読み取った結果は次 のとおりです。x3、y3、z3,1; x2、y2、z2,1; x1、y1、z1,1; x6、y6、z6,1; x5、y5、z5,1; x4、y4、z4,1; 3つの頂点ごとに順序が逆になりますが、どうしてこれが発生するのでしょうか。パススルーシェーダー中に頂点の順序が変更された理由がまったくわかりませんでした...

4

0 に答える 0