2012-12-24 114 views
1

我有一個頂點緩衝區的點是要成爲每個圓(三角形風扇)的中心。我該如何拿這些,讓我們說圍繞這一點畫10個三角形,然後移動到下一個點上?我一直無法找到任何示例代碼。OpenGL三角形風扇

回答

6

如果您使用舊管道,則必須glEnd(),然後glBegin()

如果您正在發出繪圖調用,則可以使用原始重新啓動功能,其中可以將一個索引指定爲開始一個新的基元。所有信貸datenwolf指出,我已經清楚從我的記憶中刪除它。

但是我個人認爲只要使用索引的三角形就可以達到更好的效果,然後您可以隨時重新使用任何想要的頂點。它更簡單,驅動程序/硬件會感謝你。

(換句話說,不要使用GL_TRIANGLE_FAN - 只是使用GL_TRIANGLES。這是所有的硬件繪製)。

+0

原始重啓指數已經存在很久了。由於cristmas不會降低,但你的答案是不準確的。 – datenwolf

+0

@datenwolf你說得對,而且我已經用完整的功勞糾正了我的答案。我也提高了你的答案。聖誕節快樂! – JasonD

2

您可以使用原始重新啓動索引來執行此操作。您可以設置一個特殊索引值(通常是用於索引的類型可表示的最大數字)。然後,無論索引緩衝區中遇到此索引,都會啓動一個新的基元,就好像多次調用glDraw ...一樣。

http://www.opengl.org/sdk/docs/man3/xhtml/glPrimitiveRestartIndex.xml

+0

那真是令人尷尬。我只是一直想着可憐的車手不得不重新格式化硬件的所有數據。 – JasonD