爲什麼三角形總是用於繪製3D表面?爲什麼不是方形或其他形狀?爲什麼3D引擎主要使用三角形繪製表面?
回答
三角形永遠不會是非平面的;超過3個點的任何東西都可以是非平面的,因此不可渲染,除非轉換爲三角形。
例如:一個正方形是兩個三角形在同一平面上,如果構成正方形的所有點都是共面的。需要進行大量計算才能確保所有點都是共面的,因此,所有大於3個點的多邊形都是通過將它們抽成三角形並進行測試以確保所有點共面一次來預先計算的在渲染的每一幀上。
這裏是很好的參考about polygon meshes。
平面形狀的網狀
http://softimage.wiki.softimage.com/xsidocs/ca0c8514.jpg
非平面網
http://softimage.wiki.softimage.com/xsidocs/ca0c854b.jpg
和一個例子可能更清楚
非平面網格是退化的,無法以任何理智的方式正確排序或呈現。三角形沒有這個問題。
效率
三角形也非常有效的存儲器,並且可以進行排序,並使用其Triangle Strips只需要1分將被存儲爲第一後每個附加三角形時呈現速度極快。
http://upload.wikimedia.org/wikipedia/en/0/03/Triangle_Strip.png
和Triangle Fans它是一個三角形地帶一個特例。
http://www.codesampler.com/d3dbook/chapter_05/chapter_05_files/image008.jpg
基本上任何複雜(表面)結構都可以表示爲一束三角形。三角形是最原子和最原始的幾何形狀。因此它被用作幾乎任何事物的基礎。儘管如此,大多數3D引擎爲您提供了更復雜的基元,如球體,圓錐體,圓柱體,圓環,什麼都不是。 檢查您的庫文檔。
由於3個點是定義平面曲面所需的最小點,因此可以使用多個三角形來模擬任何形狀,並且存在快速繪製三角形到屏幕上的高效算法。
- 1. 什麼是繪製大量半透明三角形的最快引擎?
- 2. 如何爲3D引擎Z排序三角形?
- 3. 繪製三角形
- 4. 當繪製三角形條時,什麼控制OpenGL的行爲?
- 5. 在三角形的三角形中繪製三角形
- 6. 如何使用OpenTK繪製三角形?
- 7. 使用圓繪製三角形
- 8. 用三角形風扇繪製圓形
- 9. 尋找繪製三角形
- 10. 三角形繪製方法
- 11. Direct3D 11 - 繪製三角形
- 12. 繪製旋轉三角形
- 13. 繪製紋理三角形
- 14. 繪製三角形iOS
- 15. Android:三角形作爲XML可繪製
- 16. 3D空間中的三角形曲面
- 17. 從點雲繪製一個3d三角形網格
- 18. 帶圓角的繪製三角形
- 19. 在Blend中繪製圓角三角形
- 20. 用三角形繪製圓WebGL
- 21. 用CGContext繪製三角形/箭頭線
- 22. 用glDrawArray函數繪製三角形
- 23. 用OpenGL繪製一個三角形
- 24. Android:在三角形上繪製三角形
- 25. 使用陣列繪製3D表面
- 26. 3D三角形 - 三角形交叉點多邊形
- 27. 在OpenGL ES中繪製三角形風扇需要多少次繪製調用?
- 28. 在Java圖形使用鼠標點擊繪製三角形
- 29. Matlab繪圖四面體和三角形
- 30. 爲什麼我的三角形的面積/周長爲0?
只是爲了快速補充一點,多邊形(更確切地說三角形)不渲染3D曲面的唯一出路:退房surfels([http://www.filipvanbouwel.be/master_thesis.php ](http://www.filipvanbouwel.be/master_thesis.php)),體素等 – 2011-05-23 17:28:42