Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 选择OpenGL范围元素GL\U元素\U数组\U缓冲区_C++_Opengl - Fatal编程技术网

C++ 选择OpenGL范围元素GL\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

在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
    // 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()
)。