OpenGL實(shí)例教程09:IBO
什么是IBO
Index Buffer Object 索引緩沖對象
進(jìn)入3D的世界
前面我們看到的都是二維的效果(雖然是三維空間,但z都等于0),現(xiàn)在讓我們來繪制一個三棱錐。為什么是三棱錐呢?因?yàn)槲艺也坏奖冗@更簡單的三維形狀了。

繪制一個三棱錐,需要多少個頂點(diǎn)數(shù)據(jù)?
按順序繪制:
需要四個三角形,每個三角形三個點(diǎn)。需要4*3=12個點(diǎn)。
按索引繪制(這節(jié)主題):glDrawElement
仔細(xì)看看圖中的三棱錐,只需要4個點(diǎn)即可,每個點(diǎn)都被三個不同的三角形共享。
需要在VBO的基礎(chǔ)之上,增加一個IBO,通過索引獲取VBO中的頂點(diǎn)數(shù)據(jù)。

OpenGL代碼:
主要就是創(chuàng)建IBO,并將索引值導(dǎo)入其中。并且使用glDrawElement,不是glDrawArrays進(jìn)行繪制。
運(yùn)行效果

標(biāo)簽: