好吧,這已經讓我瘋狂了4天了。我沒有生成頂點/點的問題,但是如何以合理高效/優雅的方式製作封閉的多邊形或線框?從頂點繪製3D多邊形(OpenGL/C++)
另一個問題是如何存儲頂點?我應該以什麼順序存儲3D對象的頂點?我真的不能再想了,我在網上尋找解決方案,但找不到任何解決方案。
我想到的是將頂點存儲在二維數組中,水平(x和z)邊緣循環爲行,垂直(y)爲列,但我懷疑這是一個很好的方法來做到這一點。
好吧,這已經讓我瘋狂了4天了。我沒有生成頂點/點的問題,但是如何以合理高效/優雅的方式製作封閉的多邊形或線框?從頂點繪製3D多邊形(OpenGL/C++)
另一個問題是如何存儲頂點?我應該以什麼順序存儲3D對象的頂點?我真的不能再想了,我在網上尋找解決方案,但找不到任何解決方案。
我想到的是將頂點存儲在二維數組中,水平(x和z)邊緣循環爲行,垂直(y)爲列,但我懷疑這是一個很好的方法來做到這一點。
創建一維頂點數組,並按照您喜歡的順序放置它們(儘管對於性能來說,更好地將它們排序爲條狀示例......)。創建一個索引數組(例如一個短陣列),索引數組中的每個元素應該指向頂點數組頂點的索引。將它們構建爲一維數組的原因在於,這是OpenGL內部處理事物的方式。
如果你的問題是你沒有一個元素數組,而只是一組你想繪製的網格點,你首先需要生成這樣的數組。首先了解三角形拓撲的基本知識:http://gamma.cs.unc.edu/COMP770/LECTURES/11trimesh.pdf,然後想辦法從一組點生成網格。
當涉及到三維頂點時,沒有標準的順序。您可以訂購它們,無論您喜歡或適合您與他們合作的方式。
立即模式如何:'glBegin(GL_POLYGON); glVertex(一); glVertex(b)中; glVertex(C); glEnd();'? – 2013-05-05 17:41:14
你應該添加一些細節。你嘗試了什麼,什麼不起作用?或者你爲什麼不覺得它夠優雅?我沒有看到,即使這四天中只有一天用google搜索也沒有幫助你。 – 2013-05-06 17:43:01
重要的是,爲什麼downvotes?而我並沒有要求使用什麼代碼。我要求提供算法或方法的提示。但沒關係,我想我有一個想法。 – Valentin 2013-05-07 15:16:16