2013-11-28 72 views
5

我正在學習openGL,並且我遇到了使用頂點緩衝對象的三角形風扇。如果給定要渲染的頂點數組,OpenGL如何確定必須使用多少頂點來構造三角形扇形。似乎可以使用任意數量的頂點。三角形風扇使用多少個頂點opengl

+0

http://stackoverflow.com/questions/8043923/gl-triangle-fan-explanation –

回答

3

看吧:GL_TRIANGLE FAN Explanation

頂點越多,你給openGL的,更多的三角形你。所有三角形的第一個頂點將是共同的。第一個三角形由頂點1,2和3組成。第二個三角形由1,3和4組成。依此類推。 你得到n - 2個三角形的n個頂點。

2

這是您用來執行渲染的命令指定的。例如,drawArrays()drawElements()都有一個count參數,它指定要使用的頂點數。

12

這可以通過比較三角形條三角形風扇很容易解釋。

三角地帶

正如你可能知道,一個三角形地帶是一組連接的三角形,其份額頂點,這使得更多的內存使用效率。 (我們節省內存,因爲我們不存儲所有複製的頂點)的一個三角形地帶

enter image description here

三角形扇

在另一方面,我們有一個三角形扇

爲例,這是也是一組相連的三角形。儘管所有這些三角形都有一個共同的頂點,也就是中心頂點。 (第一個頂點始終是中心)

就是說我們可以採用上面的相同圖像並更改頂點的順序。當完成後,三角扇將看起來像這樣。 (其中A,是在第一和中央頂點)的三角形扇

enter image description here

在三角形扇以上時,圖像僅在着色區域工作

實施例,由於頂點如何需要按照三角扇排列。

+0

更好的解釋是'strip'總是使用一個三角形的**最後2個頂點**作爲前2個頂點下一個三角形。因此,在條形圖中,想象做前3個三角形,然後想要添加三角形C-E-G而不是D-E-G。不能這樣做,因爲D-E自動成爲三角形4的開始。結果可以用'fan'來完成,因爲有一個共同的頂點。結果圖:[Wiki- Triangle fan](https://en.wikipedia.org/wiki/Triangle_fan) – ToolmakerSteve

4

從外觀上看,這是一個三角形風扇的工作原理:

每個三角形共享中心頂點A,並重新使用最後一個頂點處理。因此,在定義ABC之後,每個以下三角形僅需要1個點(例如,D,E,F)。

Indices:  A,B,C,D,E,F  [Count: 6] 
Triangles: (A,B,C) 
      (A) (C,D) 
      (A) (D,E) 
      (A)  (E,F) [N=4] --> 4+2 = 6 

另一種考慮這種方式的方法是每個三角形共享從中心頂點與前三角形輻射的邊緣;字面上像一個摺疊紙扇。

            Paper fan

你需要N + 2個頂點,其中N是你的影迷三角形的數量。