opengl glLineWidth()不';不要改变行的大小

opengl glLineWidth()不';不要改变行的大小,opengl,Opengl,我编写了这个函数,在这里我设置了线宽来绘制一个矩形,但是当调用它时,线宽根本没有改变。如何正确使用glLineWidth void drawRect(Rectangle &rect) { double x1 = rect.min.x; double y1 = rect.min.y; double x2 = rect.max.x; double y2 = rect.max.y; glLineWidth(3.0f);

我编写了这个函数,在这里我设置了线宽来绘制一个矩形,但是当调用它时,线宽根本没有改变。如何正确使用
glLineWidth

void drawRect(Rectangle &rect)
{
      double x1 = rect.min.x;
      double y1 = rect.min.y;
      double x2 = rect.max.x;
      double y2 = rect.max.y;

      glLineWidth(3.0f);
      glBegin(GL_LINE_LOOP);
            glVertex2d(x1, y1);
            glVertex2d(x2, y1);
            glVertex2d(x2, y2);
            glVertex2d(x1, y2);
      glEnd();

}  

OpenGL实现不需要支持宽线条的渲染

您可以使用以下工具查询支持的线宽范围:

GLfloat lineWidthRange[2] = {0.0f, 0.0f};
glGetFloatv(GL_ALIASED_LINE_WIDTH_RANGE, lineWidthRange);
// Maximum supported line width is in lineWidthRange[1].
两个限值所需的最小值均为1.0,这意味着不需要支持大于1.0的线宽。此外,绘制宽线是一项不推荐使用的功能,如果您移动到更新的OpenGL(核心配置文件)版本,将不再支持该功能


绘制宽线的另一种方法是渲染薄多边形。

谢谢,但“不需要支持大于1.0的线宽”是什么意思?我尝试了您提供的范围查询,但结果是线宽范围[0]和线宽范围[1]都是1。所以我不能更改线宽?是的,这意味着您机器上的OpenGL实现不支持宽度大于1的线条。哦,不,是因为版本太旧了吗?不一定。如果GPU供应商想要/能够支持宽线路,则完全取决于他们。由于它是一个不推荐使用的特性,并且总是可选的,所以它很可能在几乎任何GPU上都不受支持。但我真的不知道哪些供应商/GPU支持宽线,哪些不支持。