2011-05-23 48 views
42

爲什麼三角形總是用於繪製3D表面?爲什麼不是方形或其他形狀?爲什麼3D引擎主要使用三角形繪製表面?

+0

只是爲了快速補充一點,多邊形(更確切地說三角形)不渲染3D曲面的唯一出路:退房surfels([http://www.filipvanbouwel.be/master_thesis.php ](http://www.filipvanbouwel.be/master_thesis.php)),體素等 – 2011-05-23 17:28:42

回答

62

三角形永遠不會是非平面的;超過3個點的任何東西都可以是非平面的,因此不可渲染,除非轉換爲三角形。

例如:一個正方形是兩個三角形在同一平面上,如果構成正方形的所有點都是共面的。需要進行大量計算才能確保所有點都是共面的,因此,所有大於3個點的多邊形都是通過將它們抽成三角形並進行測試以確保所有點共面一次來預先計算的在渲染的每一幀上。

這裏是很好的參考about polygon meshes

平面形狀的網狀

http://softimage.wiki.softimage.com/xsidocs/ca0c8514.jpg

非平面網

http://softimage.wiki.softimage.com/xsidocs/ca0c854b.jpg

和一個例子可能更清楚

http://download.autodesk.com/us/maya/2010help/images/MED/Stargate/English/Poly/comp_poly_customwarpeg.png

非平面網格是退化的,無法以任何理智的方式正確排序或呈現。三角形沒有這個問題。

效率

三角形也非常有效的存儲器,並且可以進行排序,並使用其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

10

基本上任何複雜(表面)結構都可以表示爲一束三角形。三角形是最原子和最原始的幾何形狀。因此它被用作幾乎任何事物的基礎。儘管如此,大多數3D引擎爲您提供了更復雜的基元,如球體,圓錐體,圓柱體,圓環,什麼都不是。 檢查您的庫文檔。

12

由於3個點是定義平面曲面所需的最小點,因此可以使用多個三角形來模擬任何形狀,並且存在快速繪製三角形到屏幕上的高效算法。