1. 程式人生 > >opengl使用glDrawElements繪製圖形(IBO)

opengl使用glDrawElements繪製圖形(IBO)

glDrawElements為Opengl圖元繪製函式

函式原型為:

void glDrawElements( GLenum mode, GLsizei count,

GLenum type, const GLvoid *indices);

其中:

mode指定繪製圖元的型別,它應該是下列值之一,GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON.

count為以mode型別連線的頂點的總數,且根據不同的mode,count小於或等於單個mode型別圖元的頂點數*圖元數

type為索引值的型別,只能是下列值之一:GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT。

indices:指向索引存貯位置的指標

使用方法:

1 建立並繫結索引

GLuint IBO;

 unsigned int Indices[] = { 0, 3, 1,   繪製點的索引                                1, 3, 2,                                2, 3, 0,                                0, 1, 2 };

    glGenBuffers(1, &IBO);     glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, IBO);     glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(Indices), Indices, GL_STATIC_DRAW);

2 在glutDisplayFunc回撥函式中

 glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, IBO);

    glDrawElements(GL_TRIANGLES, 12, GL_UNSIGNED_INT, 0); 呼叫繪製點的索引

原始碼位置:。。。/code/10.cpp