如果要画三角形,那我们只需要3个点。但是如果我们要画矩形,我们虽然只需要4个点。但是由于所有非三角形都是由多个三角形拼凑的,所以我们实际上需要告诉GPU 6个点,才可以画出两个三角形。但是这6个点中,有2个点是重复的。如果我们把他们存入vertex buffer中,就会显得有些浪费。所以这里引入了index buffer。顾名思义,index buffer是配合vertex buffer使用的,用来指定我们vertex buffer里面的点的使用顺序
GLuint indices[] = { 0, 1, 2, 2, 3, 0 }; GLuint ibo; glGenBuffers(1, &ibo); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo); glBufferData(GL_ELEMENT_ARRAY_BUFFER, 6 * sizeof(float), indices, GL_STATIC_DRAW); glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, nullptr);