我正在用我制作的函数绘制 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 切换,等效代码给出了我需要的结果:
我怎样才能解决这个问题?这发生在我所有的线/多边形代码上!:(