【发布时间】:2013-12-06 00:58:49
【问题描述】:
我正在尝试使用 opengl 在 C 中绘制三角形,但没有用于绘制三角形和线条的标准 opengl 函数。 (我用的是 ubuntu。)
我使用了 Bresenham 线描算法。我想,这个算法本身的代码很好,因为它画了三角形,但它看起来像下图。
我需要让它看起来像这样
在画线算法中,我使用以下函数逐个像素地画线:
void setPixel(int x, int y) {
glBegin(GL_POINTS);
glVertex2i(x,y);
glEnd();
glFlush();
}
您能帮我解决以下问题吗? : 为什么线条不流畅? 为什么像素之间有空格? 为什么线条不细?
【问题讨论】:
-
你设置了多少像素?您是否使用了任何形式的抗锯齿功能?
-
@rhughes - Bresenhams 没有抗锯齿功能。您可以以更高的分辨率运行它然后下采样,但使用内置抗锯齿的画线算法可能会更好。但是,在这种情况下,“想要的”插图似乎不是也抗锯齿(RHS 上有楼梯),所以也许是“为什么线条不平滑?” OP 只是指巨大的“像素”。
-
值得注意的是,由于这是在 3D 空间中,因此您实际上并没有 2D 图像意义上的“像素”。如果您正在寻找对像素的更多控制,请尝试渲染到图像或查看 2D API。
-
正如@Steve314 所说,我的意思是巨大的像素。我应该更具体。实际上,我不能使用 2D API,所以我将尝试渲染。谢谢大家。