5

glVertexAttribPointerOpenGLで(拡張機能などを介して) 、すべての頂点に対して1つではなく、すべてのプリミティブ(またはN個の頂点)に対して1つずつ進む型関数によって指定された属性配列を持つことが可能かどうか疑問に思っていますか?

たとえば、現在単色の三角形の配列がある場合、すべての頂点に対して同じ色データを繰り返す必要があります。代わりに、これらの線に沿ったものが必要です。

struct pos {
    uint8_t x, y;
} positions[NUM_VERTICES];

struct col {
    uint8_t r, g, b;
} colors[NUM_VERTICES / 3];

両方の配列がOpenGLに送信され、単一の配列でレンダリングされるときに、配列の1つの要素がcolors3つの連続する要素ごとに再利用される場合positionsglVertexAttribPointerglDrawArrays(GL_TRIANGLES, ...);

ARB_instanced_arrays最初は有望に思えた機能を提供する拡張機能を見つけましたが、glVertexAttribDivisorARB私が説明したようには機能しないと思います。

4

1 に答える 1

4

これは基本的に、マルチインデックスレンダリングに関するこの質問の代替形式です(異なるため、重複とは呼びません)。簡単な答えはノーです。それほど単純ではない答えは、自分でアクセスしてインデックスを作成することです。

于 2012-07-05T20:03:04.747 に答える