2012-11-08 101 views
3

這裏是我的功能:glDrawElements只繪製一半四

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

當我運行程序時,它只繪製了半個四邊形 - 即三角形。

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

回答

7

你的指數載體應含有:

0 1 2 0 2 3 

否則,你永遠不碰頂點數0與四邊形的半結束。

+1

它告訴我等一分鐘才能接受:) –