OpenGL 基本圖元

基本圖元

截屏2020-07-13 17.55.48.png
  • 這些圖元將在一個包含給定圖元的所有頂點和相關(guān)屬性的單個批次中進行渲染
  • 本質(zhì):在一個給定的批次中的所有定點都會用于組成這些圖元中的一個

基本圖元事例

2500437-13ab305aadd4e3d2.png

  • 最簡單的圖元塔逃,每個特定的頂點在屏幕上都僅僅是一個單獨的點
  • 默認情況下僵驰,點的大小為一個像素
  • 可以調(diào)用以下方法改變默認點點大小
void glPointSize(GLfloat size)
注意:并不是所有的點的大小都能夠支持的疯坤,應(yīng)該先確認指定點大小是否可用(用以下函數(shù)獲得點大小的范圍及它們之間的最小間隔)
GLfloat sizes[2];//存儲支持的點大小范圍
GLfloat step;//存儲支持的點大小增量

//獲取支持的點大小范圍和步長(增量)
glGetFloatv(GL_POINT_SIZE_RANCE,sizes);
glGetFloatv(GL_POINT_SIZE_GRANULARITY,&step);

  • 比點更進一步的獨立的線段
  • 在二個頂點之間繪制的包含偶數(shù)個頂點的一批線段且每個頂點都是線段的端點
  • 默認線段的寬度為一個像素
  • 改變線段寬度的函數(shù)(唯一方式)
void glLineWidth(GLfloat width);

注意:

  • 線帶:連續(xù)地從一個頂點到下一個頂點繪制線段诡渴,以形成一個真正連接點的線條(GL_LINE_STRIP)
  • 線環(huán):是線帶的一種簡單擴展,在線帶的基礎(chǔ)上額外增加了一條連接著一批次中最后一個點和第一個點的線段(GL_LINE_LOOP)

三角形

  • 可能是存在最簡單的實體多邊形(只有三個邊)
  • 光柵化硬件最歡迎三角形(OpenGL中支持的唯一一種多邊形)

單獨的三角形

1.png

環(huán)繞

  • 如上圖所示:連接頂點的線段上所示的箭頭,無論左右三角形都是按照頂點被指定的順序(順時針或逆時針)
  • 環(huán)繞:即這種順序與方向結(jié)合來指定頂點的方式(順時針環(huán)繞或逆時針環(huán)繞)
2.png

注意:

  • 默認情況:OpenGL認為具有逆時針方向環(huán)繞的多邊形為正面的(順時針方向環(huán)繞:反面)
  • 對一個多邊形的正反面需要設(shè)置不同的物理特征(顏色,反射,紋理)
  • 在一個場景中名秀,使所有的多邊形保持環(huán)繞方向的一致,并使用正面多邊形來繪制所有實心物體的外表面是非常重要的
//此函數(shù)可以改變以上的默認行為
glFrontFace(GL_CW);
GL_CW(此參數(shù)告訴OpenGL順時針環(huán)繞的多邊形將被認為是正面)
GL_CCW(此參數(shù)把多邊形的正面重新恢復(fù)為逆時針環(huán)繞)

三角形帶

  • 對于許多表面和形狀來說藕溅,我們可能需要繪制幾個相連的三角形匕得。可以使用GL_TRIANGLE_STRIP圖元繪制一串相連的三家形巾表,從而節(jié)省大量的時間
3.png

思考:為什么使用三角形帶而不分別指定每個三角形汁掠?

  • 優(yōu)點1:用前三個頂點指定第一個三角形之后,對于接下來的每個三角形集币,只需要再指定一個頂點(尤其是需要繪制大量的三角形時考阱,采用這種方法可以節(jié)省大量的程序代碼和數(shù)據(jù)存儲空間)

  • 優(yōu)點2:提高運算性能和節(jié)省帶寬(更少的頂點意味著數(shù)據(jù)從內(nèi)存?zhèn)鬏數(shù)綀D形卡的速度更快,頂點著色器需要進行處理的次數(shù)也更少)

三角形扇

  • 可以使用GL_TRIANGLE_FAN創(chuàng)建一組圍繞一個中心點點相連三角形
4.png

簡單批次容器

  • GLTools庫中包含一個簡單的容器類鞠苟,叫GLBatch
  • GLBatch以供7種基本圖元簡單批次的容器使用乞榨,且它知道在使用GLShaderManager支持的任意存儲著色器時如何對圖元進行渲染的

注意:
OpenGL內(nèi)部運行機制實際上比這要復(fù)雜得多(GLBatch類只是一個便利類)

GLTools使用

1.對批次進行初始化
//包含那種類型圖元,頂點數(shù)当娱,(可選)一組或二組紋理坐標
void GLBatch::Begin(GLenum primitive, GLuint nVerts, GLuint nTextureUnits = 0);

2.至少要復(fù)制一個由3個分量(x,y,z)頂點組成的數(shù)組
void GLBatch::CopyVertexData3f(GLfloat *vVerts);
//也可以復(fù)制表面法線吃既,顏色和紋理坐標
void GLBatch::CopyNormalDataf(GLfloat *vNorms);
void GLBatch::CopyColorData4f(GLfloat *vColors);
void GLBatch::CopyTexCoordData2f(GLfloat *vTex, GLuint uiTextureLayer);
3.最后結(jié)束
void GLBatch::Draw(void);
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市跨细,隨后出現(xiàn)的幾起案子鹦倚,更是在濱河造成了極大的恐慌,老刑警劉巖冀惭,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件震叙,死亡現(xiàn)場離奇詭異,居然都是意外死亡散休,警方通過查閱死者的電腦和手機媒楼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來溃槐,“玉大人匣砖,你說我怎么就攤上這事』璧危” “怎么了猴鲫?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長谣殊。 經(jīng)常有香客問我拂共,道長,這世上最難降的妖魔是什么姻几? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任宜狐,我火速辦了婚禮,結(jié)果婚禮上蛇捌,老公的妹妹穿的比我還像新娘抚恒。我一直安慰自己,他們只是感情好络拌,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布俭驮。 她就那樣靜靜地躺著,像睡著了一般春贸。 火紅的嫁衣襯著肌膚如雪混萝。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天萍恕,我揣著相機與錄音逸嘀,去河邊找鬼。 笑死允粤,一個胖子當著我的面吹牛崭倘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播类垫,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼绳姨,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了阔挠?” 一聲冷哼從身側(cè)響起飘庄,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎购撼,沒想到半個月后跪削,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡迂求,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年碾盐,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片揩局。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡毫玖,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情付枫,我是刑警寧澤烹玉,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站阐滩,受9級特大地震影響二打,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜掂榔,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一继效、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧装获,春花似錦瑞信、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至绩郎,卻和暖如春潘鲫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背肋杖。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工洗做, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留盅蝗,地道東北人磷仰。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓驳遵,卻偏偏與公主長得像,于是被迫代替她去往敵國和親津畸。 傳聞我的和親對象是個殘疾皇子振定,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355