OpenGL中畫三角形

最近導師給我一個任務,讓我做數據可視化。
在這裏插入圖片描述
類似這樣的。
其實很明顯,就是對數據取點,然後用OpenGL畫三角形就完事了。

OpenGL中畫三角形有三種方法:TRIANGLES、TRIANGLE_STRIP和GL_TRIANGLE_FAN。

TRIANGLES

在這裏插入圖片描述
GL_TRIANGLES是以每三個頂點繪製一個三角形。第一個三角形使用頂點v0,v1,v2,第二個使用v3,v4,v5,以此類推。如果頂點的個數n不是3的倍數,那麼最後的1個或者2個頂點會被忽略。

TRIANGLE_STRIP

在這裏插入圖片描述
構建當前三角形的頂點的連接順序依賴於要和前面已經出現過的2個頂點組成三角形的當前頂點的序號的奇偶性(如果從0開始):

如果當前頂點是奇數則遵循奇數環繞規則

在這裏插入圖片描述

如果當前頂點是偶數則遵循偶數環繞規則

在這裏插入圖片描述
以上圖爲例,第一個三角形,頂點v2序號是2,是偶數,則頂點排列順序是v0,v1,v2。第二個三角形,頂點v3序號是3,是奇數,則頂點排列順序是v2,v1,v3,第三個三角形,頂點v4序號是4,是偶數,則頂點排列順序是v2,v3,v4,以此類推。

這個順序是爲了保證所有的三角形都是按照相同的方向繪製的,使這個三角形串能夠正確形成表面的一部分。對於某些操作,維持方向是很重要的,比如剔除。

注意:頂點個數n至少要大於3,否則不能繪製任何三角形。

GL_TRIANGLE_FAN

這個方法是以一系列頂點中的第一個點爲中心點,其他頂點爲邊緣點,繪製一系列組成扇形的相鄰三角形。

GL_TRIANGLE_FAN與GL_TRIANGLE_STRIP類似,不過它的三角形的頂點排列順序是T = [n-1 n-2 n].各三角形形成一個扇形序列。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章