OpenGL学习—EBO

一.概念

EBO(Element Buffer Object,也叫IBO:Index Buffer Object)索引缓冲区对象

如在绘制多边形时,顶点数组中出现大量重复点,可以使用索引数组从而减少重复性点

EBO用来存储索引数据

二.使用

创建所索引数组

float vertices[]={
    -0.5f,-0.5f,0.0f,
    0.5f,-0.5f,0.0f,
    0.0f,0.5f,0.0f};

unsigned int indices[]={0,1,3
                        1,2,3};

创建EBO(同VBO)

注:EBO从索引数组中拿取数据

unsigned int EBO;
//创建
glGenBuffers(1,EBO);
//绑定
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,EBO);
//传入数据
glBufferData(GL_ELEMENT_ARRAY_BUFFER,sizeof(indices),indices,GL_STATIC_DRAW);

创建好EBO后,VAO也会记录EBO中的情况

绘制的时候使用

glDrawElements();

glDrawElements(GL_TRIANGLES,6,GL_UNSIGNED_INT,0);