我正在製作一款opengl-es應用程序,並且我一直通過傳遞每個四個頂點的6個索引來繪製四邊形,從而將一個四邊形分成兩個三角形。我認爲你可以在三維圖形中製作四邊形和三角形..?我注意到在攪拌器中,但是如果使用decimate修改器,則可以使用十幾個或更多個垂直進行修改。 opengl-es可以渲染這個嗎?你如何渲染由十幾個vert構成的臉部?我不確定它是如何從一個opengl的角度來看。 opengl是否知道每次獲得3個頂點索引時都會繪製?如果這樣會很方便。Opengl三角形和麪臨頂點限制?
1
A
回答
0
OpenGL ES以及桌面OpenGL的核心配置文件只支持由三角形組成的原始類型。早期版本的OpenGL支持其他基本類型,如GL_QUADS
和GL_POLYGON
,但它們並未被最近的硬件直接支持,並且大多數情況下都是冗餘的。
除了單獨的三角形(GL_TRIANGLES
原始類型)之外,還支持三角形條(GL_TRIANGLE_STRIP
)和三角形風扇(GL_TRIANGLE_FAN
)。它們允許您繪製連接三角形的集合,而不必爲每個三角形指定3個頂點。
下圖(從Red Book借)示出了三角形如何從指定的頂點形成有用於每個原語類型:
例如,在當前使用6個頂點索引爲一個四邊形,您只能使用4個三角形網格或三角形風扇。有些人聲稱,只要你分享頂點,減少指數的數量通常不會幫助表現。
如果您的輸入格式使用具有任意數量頂點的多邊形,只要多邊形是凸面的,這仍然很容易處理。如果您查看上圖中的三角形扇形,您會注意到頂點排序實際上與多邊形的排列順序相同。所以凸多邊形可以直接用三角形風扇表示。
如果您寧願堅持使用GL_TRIANGLES
進行渲染,並且輸入具有n邊多邊形,則必須將它們拆分爲三角形。再說一次,只要多邊形是凸的就很容易。除了分別爲每個三角形生成索引之外,您可以使用與三角形風扇相同類型的三角測量。我的答案在這裏詳細闡述了一些:Converting quadriladerals in an OBJ file into triangles?。
非凸多邊形是另一回事。您將不得不使用從簡單到複雜的算法將它們分成三角形。如果您使用像「多邊形三角測量算法」這樣的搜索術語,您應該能夠找到大量的文獻。也可以在OpenGL中巧妙地使用模板緩衝區來繪製凹多邊形。但我懷疑大多數建模程序會生成凹多邊形,所以這是一個非常罕見的用例。
相關問題
- 1. Opengl三角形旋轉頂點修改
- 2. OpenGL中的頂點限制
- 3. 使用頂點緩衝對象渲染不同的三角形類型和三角形扇形? (OpenGL)
- 4. OpenGL的:三角形與無限
- 5. 確定openGL ES頂點着色器中計算的三角形的頂點
- 6. 三角形風扇使用多少個頂點opengl
- 7. OpenGL:指定三角形的意外頂點位置
- 8. 減少頂點和三角形用於統一製作的平面
- 9. 從直角三角形和一個頂點的兩側查找未知頂點
- 10. 三角形頂點 - Lua計算?
- 11. 獲取三角形頂點fabricjs
- 12. 不規則三角形頂點索引
- 13. C中頂點的三角形數量
- 14. 切圓在三角形頂點
- 15. LWJGL3 OpenGL三角形不會繪製
- 16. 用OpenGL繪製一個三角形
- 17. OpenGL 3.2三角形未繪製
- 18. 爪哇 - 創建三角形面臨一定點
- 19. 正面和背面三角形的GLCullFace? iPhone OPENGL ES
- 20. OpenGL三角形風扇
- 21. uv mapping python OpenGL三角形
- 22. OpenGL 3.3 glDrawArrays三角形
- 23. 基本三角形的OpenGL
- 24. OpenGL三角形不渲染
- 25. OpenGL drawing倒三角形
- 26. 如何防止OpenGL中的三角形在自身前面的三角形頂部呈現
- 27. opengl中的三角形多邊形三角形es
- 28. 三角形的每個面上有K個頂點的三維點
- 29. 十二面體三角形的頂點法線
- 30. 在三角形的三角形中繪製三角形