opengl glLineWidth()不会改变行的大小

时间:2016-01-19 01:16:07

标签: 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);
      glBegin(GL_LINE_LOOP);
            glVertex2d(x1, y1);
            glVertex2d(x2, y1);
            glVertex2d(x2, y2);
            glVertex2d(x1, y2);
      glEnd();

}  

1 个答案:

答案 0 :(得分:9)

不需要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版本,将不再支持该功能。

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