我正在用我制作的函数画3条线(简化的工作示例):
template<class... Args> inline void DrawPoly(float width , int color, Args... args)
{
glLineWidth(width);
ofSetHexColor(color);
glBegin(GL_LINES);
std::array<ofPoint, sizeof...(args)> list = {args...};
for(size_t i = 1, j = list.size(); i < j; ++i)
{
glVertex3f(list[i-1].x, list[i-1].y, list[i-1].z);
glVertex3f(list[i].x, list[i].y, list[i].z);
}
glEnd();
}
它做得很好,但我无法得到1像素大小的好线条。不管我怎么设置宽度。
这就是我调用函数的方式:
DrawPoly(0.001,0x77777777,ofPoint(150,150),ofPoint(200,150),ofPoint(200,200),ofPoint(150,200));
这就是结果(无论我设置的宽度有多低!):
我不明白为什么会发生这种情况,我正试图从directX切换,等效代码给出了我需要的结果:
我该怎么解决这个问题?我所有的线形/多边形代码都会出现这种情况!:(