三角帶
三角帶是一個三角形列表,其中每個三角形都與前一個三角形共享一邊,圖14.2顯示了一個三角帶的例子。

注意頂點列出的順序使得每三個連續的點都能構成一個三角形。例如:
(1)頂點1、2、3構成第一個三角形。
(2)頂點2、3、4構成第二個三角形。
(3)頂點3、4、5構成第三個三角形。
在圖14.2中,頂點以構成三角形帶的順序編號。"索引"信息不再需要,因為頂點順序已經隱式定義了三角形。通常,列表前部有頂點數目,或末尾處有一特殊碼表示"列表結束"。
注意到,頂點順序在順指針和逆時針間不斷變換(見圖14.3)。某些平臺上,需要指出第一個三角形的頂點順序,而有些平臺上順序是固定的。

最佳情況下,三角帶可用n+2個頂點存儲n個面。n很大時,每個三角形平均發送一個頂點,遺憾的是,這只是最佳情況。實踐中,很多網格是一個三角形帶無法表達的,不僅如此,3個以上三角形共享的頂點還是要多次發送給圖形卡。從另一方面說,每個三角形至少要發送一個頂點。但在頂點緩存機制中,有可能將每個三角形發送的頂點數降到一個以下。當然,頂點緩存需要額外的簿記信息(索引和緩存管理數據),可是盡管這些額外信息對單個頂點來講相對較大,操作速度也會相對下降,但發送頂點數最少的系統在特定平臺上速度最快。
假設用一種生成三角帶的直接方法,用三角帶表示三角網需要的頂點數為t+2s,t為三角形數目,s為三角帶數目。每個三角帶的第一個三角形對應三個頂點,以后每個三角形對應一頂點。因為我們希望最小化發往圖形卡的頂點數,所以三角帶的數目應盡可能少,即三角帶越長越好。STRIPE方法給出了一種三角帶數目接近理論下限的生成手段。
另一個希望減少三角形帶數目的原因在于建立各三角形需要額外時間。從另一方面說,分別渲染兩個長為n的三角帶所需時間長于渲染一個長為2n的三角帶,即使這個三角帶中的三角形數多于兩個分開帶中三角形數量的和。于是,我們經常通過使用退化三角形連接多個三角帶,從而將整個網格置于一個連續的三角帶中,退化的意思是面積為0。圖14.4顯示了如何重復頂點以將兩個三角形合并為一個。

圖14.4的含義不太明顯,但這里有四個退化三角形用于連接兩個三角帶從而維持正確的順指針、逆時針順序。頂點7、8間的邊實際包含兩個退化三角形,圖14.5指出了圖14.4中包含的三角形。

退化三角形面積為0不需要渲染,所以不會影響效率。實際上要發送到圖形卡的頂點仍然只是第一列的頂點:
1,2,3,4,5,6,7,8,9,10,11,12,13
這符合我們每三個連續頂點表示一個三角形的約定。
一些硬件(如PS2上的GS)可以跳過三角帶中的三角形,方法是通過一個頂點上的標志位指出"不必繪制"此三角形。這給我們一種方法可以有效的從任意點開始新三角形帶而不必重復頂點或使用退化三角形。例如,圖14.4中的兩個三角帶可以如圖14.6那樣連接,其中灰色表示頂點被標記"不必繪制"。

三角扇
三角扇和三角帶類似,但不如三角帶靈活,所以很少使用。圖14.7所示即為三角扇。

三角扇使用n+2個頂點存儲n個面,和三角帶相同。但是,第一個頂點必須為所有三角形共享,所以實踐中不太經常能找到大型三角扇應用的場合。并且,三角扇不能像三角帶那樣連接。所以,三角扇只能在特殊場合應用,對一般應用來說,三角帶更靈活。