序列繪圖和索引繪圖

openGL ES有2種繪圖方式

  1. 序列繪圖
  2. 索引繪圖

“序列繪圖”郎哭,顧名思義就是將頂點一個個按順序排列存放在頂點緩存中缰泡。繪圖時跌帐,我們按照組成圖元頂點數(shù)量(點:一個頂點谦纱;線:兩個頂點打掘;三角形:三個頂點)一個個讀取下來按傅,并繪制形成圖形捉超。可以用下圖表示出來:

20160406000517221.png
  如果我們是繪制三角形唯绍,且開始偏移為0拼岳,那么可以繪制123、456兩個三角形况芒。

創(chuàng)建惜纸、綁定、緩存

buffer對象綁定的是GL_ARRAY_BUFFER

    //前三個是頂點坐標(biāo)绝骚, 后面兩個是紋理坐標(biāo)
    GLfloat attrArr[] =
    {
        0.5f, -0.5f, -1.0f,     1.0f, 0.0f,//右下  《-- 右下
        -0.5f, 0.5f, -1.0f,     0.0f, 1.0f,//左上  《-- 左上
        -0.5f, -0.5f, -1.0f,    0.0f, 0.0f,//左下  《-- 左下
        
        0.5f, 0.5f, -1.0f,      1.0f, 1.0f,
        -0.5f, 0.5f, -1.0f,     0.0f, 1.0f,
        0.5f, -0.5f, -1.0f,     1.0f, 0.0f,
    };
    
    //創(chuàng)建一個緩存區(qū)對象,綁定到GL_ARRAY_BUFFER耐版,然后將頂點數(shù)據(jù)緩存
    GLuint attrBuffer;
    glGenBuffers(1, &attrBuffer);
    glBindBuffer(GL_ARRAY_BUFFER, attrBuffer);
    glBufferData(GL_ARRAY_BUFFER, sizeof(attrArr), attrArr, GL_DYNAMIC_DRAW);

繪圖

6個點render primitives from array data

    glDrawArrays(GL_TRIANGLES, 0, 6);

“索引繪圖”,頂點同樣也是存放在頂點緩存中压汪。但是在繪圖過程中粪牲,頂點讀取順序并不是按照序列順序讀取,而是根據(jù)我們提供的頂點索引讀取止剖,比方我們要繪制一個三角形腺阳,我們可以用第3個、第5個穿香、第2個這三個頂點組成亭引。用下圖表示如下:

如果我們是繪制三角形,那么是繪制352皮获、647兩個三角形焙蚓。
從上面中,我們可以看出索引繪圖方式比序列繪圖方式優(yōu)勢地方洒宝,在于:不需要定義重復(fù)頂點信息购公,可以復(fù)用之前定義過的信息,這樣可以大大減輕編碼工作雁歌;對于內(nèi)存訪問非常有效率君丁,因為大多數(shù)物體是由相似的三角形組成的,而且這些三角形有大量重復(fù)的頂點将宪,這些重復(fù)頂點占用了同一塊內(nèi)存绘闷。

創(chuàng)建、綁定较坛、緩存

buffer對象綁定的是GL_ELEMENT_ARRAY_BUFFER

例如

    //頂點數(shù)據(jù)印蔗,前三個是頂點坐標(biāo), 中間三個是頂點顏色丑勤,    最后兩個是紋理坐標(biāo)
    GLfloat attrArr[] =
    {
        -0.5f, 0.5f, 0.0f,      0.0f, 0.0f, 0.5f,       0.0f, 1.0f,//左上
        0.5f, 0.5f, 0.0f,       0.0f, 0.5f, 0.0f,       1.0f, 1.0f,//右上
        -0.5f, -0.5f, 0.0f,     0.5f, 0.0f, 1.0f,       0.0f, 0.0f,//左下
        0.5f, -0.5f, 0.0f,      0.0f, 0.0f, 0.5f,       1.0f, 0.0f,//右下
        0.0f, 0.0f, 1.0f,       1.0f, 1.0f, 1.0f,       0.5f, 0.5f,//頂點
    };
    //頂點索引
    GLuint indices[] =
    {
        0, 3, 2,
        0, 1, 3,
        0, 2, 4,
        0, 4, 1,
        2, 3, 4,
        1, 4, 3,
    };
    self.mCount = sizeof(indices) / sizeof(GLuint);
    
    GLuint buffer;
    glGenBuffers(1, &buffer);
    glBindBuffer(GL_ARRAY_BUFFER, buffer);
    glBufferData(GL_ARRAY_BUFFER, sizeof(attrArr), attrArr, GL_STATIC_DRAW);
    
    GLuint index;
    glGenBuffers(1, &index);
    glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, index);
    glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW);

繪圖

self.mCount = sizeof(indices) / sizeof(GLuint); //頂點索引位數(shù)3*6 = 18
glDrawElements(GL_TRIANGLES, self.mCount, GL_UNSIGNED_INT, 0);

r:http://blog.csdn.net/dionysos_lai/article/details/51069430

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末华嘹,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子法竞,更是在濱河造成了極大的恐慌耙厚,老刑警劉巖强挫,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異薛躬,居然都是意外死亡俯渤,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門型宝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來八匠,“玉大人,你說我怎么就攤上這事趴酣±媸鳎” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵岖寞,是天一觀的道長抡四。 經(jīng)常有香客問我,道長仗谆,這世上最難降的妖魔是什么指巡? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮胸私,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鳖谈。我一直安慰自己岁疼,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布缆娃。 她就那樣靜靜地躺著捷绒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪贯要。 梳的紋絲不亂的頭發(fā)上暖侨,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機與錄音崇渗,去河邊找鬼字逗。 笑死,一個胖子當(dāng)著我的面吹牛宅广,可吹牛的內(nèi)容都是我干的葫掉。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼跟狱,長吁一口氣:“原來是場噩夢啊……” “哼俭厚!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起驶臊,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤挪挤,失蹤者是張志新(化名)和其女友劉穎叼丑,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扛门,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡鸠信,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了尖飞。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片症副。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖政基,靈堂內(nèi)的尸體忽然破棺而出贞铣,到底是詐尸還是另有隱情,我是刑警寧澤沮明,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布辕坝,位于F島的核電站,受9級特大地震影響荐健,放射性物質(zhì)發(fā)生泄漏酱畅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一江场、第九天 我趴在偏房一處隱蔽的房頂上張望纺酸。 院中可真熱鬧,春花似錦址否、人聲如沸餐蔬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽樊诺。三九已至,卻和暖如春音同,著一層夾襖步出監(jiān)牢的瞬間词爬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工权均, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留顿膨,地道東北人。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓叽赊,卻偏偏與公主長得像虽惭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蛇尚,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容