3

我想在 C++ 中使用 OpenGL 库创建一条粗线,但它不起作用。我试过这段代码:

glBegin(GL_LINES);
glLineWidth(3);
glVertex2f(-0.7f, -1.0f);
glVertex2f(-0.7f, 1.0f);
glEnd();

这里有什么问题吗?

4

1 回答 1

6

请注意,不推荐使用glBegin/glEnd序列和也进行渲染glLineWidth。有关使用“现代”OpenGL 的解决方案,请参阅OpenGL 线宽


不允许在/序列中调用glLineWidthwith 。之前设置线宽:glBeginglEnd

glLineWidth(3);

glBegin(GL_LINES);
glVertex2f(-0.7f, -1.0f);
glVertex2f(-0.7f, 1.0f);
glEnd();

一旦开始绘制图元,glBegin只允许指定顶点坐标(glVertex)和更改属性(例如glColorglTexCoord等),直到绘制结束(glEnd)。
所有其他指令将被忽略并导致GL_INVALID_OPERATION错误,可以通过glGetError.

于 2019-07-04T15:53:30.077 回答