3

これが私の関数です:

void Object::draw2()
{

if(!mIsInitialised) { return; }

//Tell OpenGL about our vertex and normal data
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, &Vertices.front());

glEnableClientState(GL_NORMAL_ARRAY);
glNormalPointer(GL_FLOAT, 0, &Temp2.front());

//draw the .txt-file
glDrawElements(GL_TRIANGLES, Indices.size(), GL_UNSIGNED_INT, &Indices.front());

//restore the state GL back
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
}

私のインデックス-ベクトルには次のものが含まれます:1 2 3 1 3 4

私の頂点ベクトルには次のものが含まれます:-1 -1 0 1 -1 0 1 1 0 -1 1 0

プログラムを実行すると、四角形の半分、つまり三角形しか描画されません。

結果-> http://i.stack.imgur.com/jZALG.png

4

1 に答える 1

7

インデックスベクトルには次のものが含まれている必要があります。

0 1 2 0 2 3

そうしないと、頂点番号0に触れて、クワッドの半分になってしまうことはありません。

于 2012-11-08T21:32:46.267 に答える