为什么GL_LINES模糊?

Chr*_*all 3 opengl

请考虑以下代码:

glColor4ub(255, 255, 255,255);

glBegin(GL_QUADS);
glVertex2i(100, 100);
glVertex2i(300, 100);
glVertex2i(300, 101);
glVertex2i(100, 101);
glEnd();

glLineWidth(1);

glBegin(GL_LINES);
glVertex2i(100,200);
glVertex2i(300,200);
glEnd();
Run Code Online (Sandbox Code Playgroud)

这导致以下内容,我不明白:

GL_LINES v GL_QUADS

我没有启用(实际上已经禁用了)GL_LINE_SMOOTH和GL_SMOOTH.如果这是一个全局抗锯齿"功能",它不应该影响GL_QUADS吗?

HALP?

Ben*_*igt 5

这是因为您传递了一个位于两个像素之间的坐标.

对于四边形,像素之间的边界很好,并为您提供干净的边缘.

对于线条,像素之间的顶点会导致一半线条落在每条线条上.例如,如果您正在使用glLineWidth(2),那么这将非常有效(一半的行恰好是一个像素,因此任何一侧都只有一个像素).因为glLineWidth(1),你只能获得半个像素.

  • @Chris:但你没有给出相同的坐标 - 四边形从正好y = 100到正好y = 101,以y = 100.5为中心.线以y = 200为中心. (3认同)