0
我有幾個對象是通過三角形粉絲繪製的,但是一旦我設置了我的glVertexPointer並調用了glDrawArrays,我始終沒有指定至少顯式指定原點的一個點。以下是我如何繪製場景。 DrawScene函數被設置爲一個定時器,每30ms調用一次。glDrawArrays在原點繪製隨機點?
// initialize openGL scene
InitializeGL(){
glViewport(0, 0, 800, 600);
glEnable(GL_MULTISAMPLE);
glClearDepth(1.0f);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST);
glShadeModel(GL_FLAT);
glEnable(GL_DEPTH_TEST);
glEnable(GL_CULL_FACE);
glClearColor(0.0f,0.0f,0.0f,0.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
setUpView() // optional makes a call to glRotate() and glTranslate() in MODELVIEW matrix mode
drawAxis() //optional method to draw x,y,z axis
startDrawSceneTimer() // method that just starts the DrawScene timer to 30ms
}
DrawScene()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
glEnable(GL_VERTEX_ARRAY);
//poly2 is a 7 point sided polygon, array is pointX, pointY, pointZ of each vertex
GLfloat poly2 [21] ={ -761.805 , 0.0 , 165.184 , -750.39 , 0.0 , 160.456 ,
-745.47 , 0.0 , 160.456 , -745.47 , 0.0 , 170.298 , -749.425 , 0.0 , 177.359 ,
-755.31 , 0.0 , 180.141 , -765.155 , 0.0 , 177.421};
glVertexPointer(3,GL_FLOAT,0,poly2);
glDrawArrays(GL_TRIANGLE_FAN,0,21);
glDisable(GL_VERTEX_ARRAY);
}
在圖像的左下象限中只有一個多邊形,類似於六邊形。與起源的長期聯繫是異常現象。我的頂點「poly2」數組不包含頂點(0,0,0)。
這裏是我得到的圖像:
當我切換到GL_TRIANGLE_FAN GL_POINTS,在原點的點也繪製。在我的代碼中的其他地方找不到任何東西。我也嘗試刪除繪製x,y和z軸的代碼,但它沒有改變問題。
發佈[SSCCE](http://sscce.org/)。 – genpfault 2012-03-26 15:55:46
我不明白你的形象。它出什麼問題了?白色物體不應該在那裏嗎?或者是其他東西? – user1118321 2012-03-26 16:23:27