3

仅渲染索引缓冲区的子集时,如果缓冲区的其余部分包含未初始化顶点的索引,则 Instruments 的“OpenGL ES Analyzer”似乎会报告“未初始化缓冲区数据”警告。

忽略它是否安全?有没有办法摆脱它?它会隐藏一个真正的问题吗?

4

1 回答 1

1

contains indices of uninitialized vertices->"Uninitialized Buffer Data"

忽略它是否安全?

不可以。因为您可能为子集设置了不正确的值,并且可能会发生非法内存访问。

有没有办法摆脱它?

是的。初始化你的顶点。或者如果您使用顶点缓冲区对象(VBO)。

它会隐藏一个真正的问题吗?

不,它清楚地说明了你的问题是什么。

这是我的应用程序中的片段,仅呈现缓冲区的一个子集:

glBindVertexArrayOES(_vertexArrays[currentObjectIndex]);
glUseProgram(_program);
glUniformMatrix4fv(uniforms[UNIFORM_MODELVIEWPROJECTION_MATRIX], 1, 0, _mvpMatrices[currentObjectIndex].m);
ObjectGL* object = [self.graphicsDataSource.arrayOfObjects objectAtIndex:currentObjectIndex];
// first part of buffer
glDrawArrays(GL_TRIANGLES, 0, section_object.sglSize);
// second part of buffer, accessed with offset given by second parameter
glDrawArrays(GL_LINE_LOOP, section_object.sglSize, section_object.sglSizeBounds); 
于 2013-04-19T10:14:52.827 回答