iT邦幫忙

2021 iThome 鐵人賽

DAY 25
0
自我挑戰組

翻車機率極高的2D平台遊戲(2D Platformer)製作系列 第 25

[Day 25] 雜記 - GL_TRIANGLE_STRIP與GL_TRIANGLE_FAN

各位讀者抱歉,今天是很水的一回,因為今天加班,很晚才到家,單純分享一個之前看到的問題。之前因為時間直接仙略過它了

今日目標

  • 問題分享

對...還是那個2D批次渲染器

大致上2D渲染那塊已經完成了,之前說的繪畫出不同形狀的多邊形或是圓形,暫時不會再加這些功能了,但是還沒拿實際的的圖集(Texture Atlas)來使用,之前貼的免費素材的網站-kenney,他是有提供圖集的,然後會有一份.xml用來記錄圖集中,每個小圖的資料屬性。老實說我有點想試著製作一個圖集包裝器(Texture Atlas Packer),各個小圖記錄的話會利用.csv檔來記錄。

回到原本想講的,目前使用的glDrawElements都是畫三角形,第一個參數就是了,GL_TRIANGLE,之前再查這個API相關的時候,會很常看到另外兩個看起來跟GL_TRIANGLE有關的,那兩個即是GL_TRIANGLE_STRIPGL_TRIANGLE_FAN

GL_TRIANGLE_STRIPGL_TRIANGLE_FAN

其實這個一找就找到了,但不是官方文件,是在stackoverflow上(沒錯,就是它),簡單來說,這兩個一樣是畫三角形沒錯。

先說STRIP,假設我們要畫一個頂點,STRIP的話,是會把先前已經畫出的兩個頂點連接起來,共用頂點然後畫出一個新三角形,沒錯!共用頂點,這就可以減少很多儲存空間了。

再來是FAN,其實就如其名扇子,一樣是可以共用其他頂點,但是會以Buffer中的第一個頂點當作中心,連結其周圍的頂點畫出。

這篇,是我找到上面這個答案的文章,裡面有圖,搭配圖可以更清楚這兩個是在做甚麼!~

其實這些都應該要自己是過才對,但礙於時間問題,就先這樣吧...ˊ_>ˋ


上一篇
[Day 24] 字形渲染(Text Rendering) - 渲染文字
下一篇
[Day26] 製作測試場景
系列文
翻車機率極高的2D平台遊戲(2D Platformer)製作33

尚未有邦友留言

立即登入留言