我正在使用Boost Graph Library来组织图中边缘链接的点,现在我正在处理它们的显示。
我是OpenGL ES 2 / GLKit和顶点阵列对象/顶点缓冲对象的新手。我跟着this tutorial这是非常好的,但在我想我应该做的最后是:
我已经读过访问VBO对于性能非常糟糕,我应该使用交换VBO。
我的问题是:
答案 0 :(得分:0)
如果您只想绘制图表,除了OpenGL ES之外,还有更容易使用的库。但假设你有理由:
只要抓住你描述的内容并进行测试即可。如果它足够好,那么恭喜你:你已经完成了。
您没有提到有多少图表,每个图表有多少点,修改点的频率以及您想要的帧速率。
如果您要更新几百个顶点,并且它们不经常更改,您可能甚至不需要VBO。即使没有它们,最近的硬件也可以呈现很多精灵。取决于有多少顶点以及它们改变的频率。
首先,试试这个:
// Bind the shader
glUseProgram(defaultShaderProgram);
// Set the projection (camera) matrix.
glUniformMatrix4fv(uProjectionMatrix, 1, GL_FALSE, (GLfloat*)projectionMatrix[0]);
for ( /* each chart */ )
{
// Set the sprite (scale/rotate/translate) matrix.
glUniformMatrix4fv(uModelViewMatrix, 1, GL_FALSE, (GLfloat*)spriteViewMatrix[0]);
// Set the vertices.
glVertexAttribPointer(ATTRIBUTE_VERTEX_POSITION, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), &pVertices->x));
glVertexAttribPointer(ATTRIBUTE_VERTEX_DIFFUSE, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(Vertex), &pVertices->color));
// Render. Assumes your shader does not use a texture,
// since we did not set one.
glDrawArrays(GL_TRIANGLES, 0, numVertices);
}