我写了这个函数,我设置了线宽来绘制一个矩形,但是在调用它时,线宽根本不会改变。我如何正确使用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();
}
答案 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版本,将不再支持该功能。
绘制宽线的另一种方法是渲染细多边形。