維尼的蜂巢

RealTime??!! It’s amazing!!!!

polygon strip 三月 26, 2008

Filed under: 3D Graph — kevinlin @ 11:19 上午

polygon strip或稱為 triangle strip,通常會用後者稱呼它,因為一般都是畫三角形。

triangle通常有 triangle strip 、 triangle fan 、 triangle list

Triangle List自然就是獨立的三角形,1到3構成一個三角形,4到6構成第二個三角形,看起來還蠻浪費的(會有重複的邊,45 跟67兩條線就重疊了),不過很直接,看起來就像這樣
geomtriangles.png
triangle strip是前三個點構成一個三角形後,第四個點與前兩個點(第2第3個點)構成第二個三角形,後面以此類推,示意圖如下
triangles_strip
在某些硬體上,特別是比較舊的SGI硬體還有某些電視遊樂器,用triangle strip可以減少vertices送到顯示的流水線上的數目,對於效能很有幫助,因為大部分的三角形(除了第一個),只需要用一個頂點就能表示出來。
但是在比較近期的PC顯卡,有著比較短的vertex cache,還有效能的提高,已經讓triangle list的速度跟triangle strip的速度一樣快,所以triangle strip在PC上可能沒有以前這麼重要了。

triangle fan是前三個點構成一個三角形後,第四個點與第一個點還有前一個點(第3個點)構成第二個三角形,後面以此類推,示意圖如下
triangle_fans
跟上面的triangle strip一樣,在某些硬體上的確能得到比較佳的效率。但是似乎比較建議用前面兩個。

在PSP的SDK中對polygon的type共分了以下這些,所以上面這三種幾何是必須要知道的也是基本的。
* GU_POINTS – Single pixel points (1 vertex per primitive)
* GU_LINES – Single pixel lines (2 vertices per primitive)
* GU_LINE_STRIP – Single pixel line-strip (2 vertices for the first primitive, 1 for every following)
* GU_TRIANGLES – Filled triangles (3 vertices per primitive)
* GU_TRIANGLE_STRIP – Filled triangles-strip (3 vertices for the first primitive, 1 for every following)
* GU_TRIANGLE_FAN – Filled triangle-fan (3 vertices for the first primitive, 1 for every following)
* GU_SPRITES – Filled blocks (2 vertices per primitive)

 

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s