绘制光滑的圆

Drawing smooth circle

我正在使用 OpenTK (C#),但也欢迎提出 OpenGL 建议。

我有一个通过迭代生成的点列表,每个点围绕中心点 1 度,这意味着包括中心点在内有 361 个点。不同的方法点列表可能不同,没关系。我可以使用下面的简单顶点和片段着色器绘制圆。如何更改片段 and/or 顶点着色器以获得平滑的圆。

顶点着色器:

#version 330
in  vec3 vPosition;
in  vec4 vColor;
out vec4 color;
out vec4 fPosition;
uniform mat4 modelview;
void main()
{
    fPosition = modelview * vec4(vPosition, 1.0);
    gl_Position = fPosition;
    color = vColor;
}

片段着色器:

#version 330
in vec4 color;
in vec4 fPosition;
out vec4 outputColor;
void main()
{
    outputColor = color;
}

C#代码:

GL.DrawArrays(PrimitiveType.TriangleFan, 0, points.Length);

你好,你到底看到了什么? Post 截图。无论如何,对于光滑的边缘,我们有所谓的抗锯齿。 将此行用于您的 glControl 以启用它

glControl = new GLControl(new OpenTK.Graphics.GraphicsMode(32, 24, 0, 8));