【发布时间】:2018-04-15 03:14:20
【问题描述】:
我的目标是使用不同颜色的 VBO 渲染一个段列表,如果可能的话,使用不同的宽度。
每个顶点由以下定义:
class Vector2f {
public:
float x, y;
};
线段列表由定义线段的成对顶点组成。
然后我初始化VBO:
glGenBuffers(1, &vbo);
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glBufferData(GL_ARRAY_BUFFER, sizeof(Vector2f) * segments.size(), &segments[0], GL_DYNAMIC_DRAW);
glBindBuffer(GL_ARRAY_BUFFER, 0);
然后我使用:
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(2, GL_FLOAT, sizeof(Vector2f), (void*)(sizeof(float) * 0));
glColor3f(0.0f, 1.0f, 0.0f);
glDrawArrays(GL_LINES, 0, segments.size());
glDisableClientState(GL_VERTEX_ARRAY);
glBindBuffer(GL_ARRAY_BUFFER, 0);
在我的示例中,我想为每个段赋予一种颜色。颜色是先前定义的,只能是 3 个选项中的 1 个。 我该怎么做?我可以通过使用颜色索引而不是重复它们来优化它吗?
如果有,怎么做?
另外,是否可以定义每个单独段的宽度?
【问题讨论】:
标签: c++ performance opengl colors vbo