2010-11-19 168 views
0

我有我製作一個立方體的代碼(使用12個三角形),它在z方向上來回移動。在不創建新緩衝區的情況下渲染對象

有沒有辦法在空間的不同位置同時渲染這個立方體(比如說)5次。到目前爲止,我將不得不爲每個立方體創建一個新的緩衝區,這似乎是錯誤的。

回答

3

如果CubeObj.draw()是你的立方體的繪製函數(可能glVertexPointer然後glDrawElements調用),

glPushMatrix(); //save the current matrix 
    glTranslatef(translatex, translatey, translatez); 
    //glRotatef(), glScale, etc. 

    CubeObj.draw(); 
glPopMatrix(); //restore the matrix 

的glPush/PopMatrix()調用確保塊變換命令只適用於該特定的立方體。

您可以多次調用對象的繪圖函數而無需重建對象。 也就是說,您可以擁有上述代碼的另一個副本並更改轉換命令,並且您似乎有2個獨立的多維數據集。

希望這有助於。

編輯:

確保你在你的顯示功能的頂部有glLoadIdentity()的調用

+0

謝謝你這麼多。我會嘗試推/流行設置! – Eugene 2010-11-19 01:48:41

相關問題