C++ 选择OpenGL范围元素GL\U元素\U数组\U缓冲区
在vbo 1中,我将数组作为GL|U数组|U缓冲区(顶点|法线|纹理)进行交错,有一些纹理要应用于它们 我有一个向量数组,包含要应用纹理的面的起点和终点 即。 面50到3000应用纹理1 面3001至5000应用纹理2 如何为每个纹理构建GL\u元素\u数组\u缓冲区索引数组,保持相同的数组\u缓冲区?C++ 选择OpenGL范围元素GL\U元素\U数组\U缓冲区,c++,opengl,C++,Opengl,在vbo 1中,我将数组作为GL|U数组|U缓冲区(顶点|法线|纹理)进行交错,有一些纹理要应用于它们 我有一个向量数组,包含要应用纹理的面的起点和终点 即。 面50到3000应用纹理1 面3001至5000应用纹理2 如何为每个纹理构建GL\u元素\u数组\u缓冲区索引数组,保持相同的数组\u缓冲区?std::vector index; std::vector<unsigned int> indices; // fill "indices" as needed // Gen
std::vector index;
std::vector<unsigned int> indices;
// fill "indices" as needed
// Generate a buffer for the indices
GLuint elementbuffer;
glGenBuffers(1, &elementbuffer);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, elementbuffer);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, indices.size() * sizeof(unsigned int), &indices[0], GL_STATIC_DRAW);
//根据需要填写“索引”
//为索引生成缓冲区
胶合元素缓冲液;
glGenBuffers(1,&elementbuffer);
glBindBuffer(GL_元素_数组_缓冲区,elementbuffer);
glBufferData(GL\u元素\u数组\u缓冲区,index.size()*sizeof(unsigned int),&index[0],GL\u静态\u绘图);
我需要对多个纹理执行相同的操作,以保持交错数组缓冲区相同为什么不调用glDrawArrays(?,50,3000)代码>然后切换纹理,然后glDrawArrays(?,3001,5000)代码>?我可以映射texcoord和normals吗?索引缓冲区(GL\u元素\u数组\u缓冲区)对这一点没有帮助。它只指定顶点的渲染顺序。我将在单独的阵列上使用glDrawArrays进行一些测试,因为我认为它不适用于交错阵列。它适用于交错阵列。但是,您必须正确绑定它们(使用glvertexattributepointer()
)。