我正在使用OpenTK(C#),但也欢迎OpenGL建议。
我有一个通过迭代生成的点列表,该点列表在中心点周围每个点有1度,这意味着有361个点包括中心点。点列表可能会因不同的方法而有所不同,没关系。我可以使用以下简单的“顶点和片段”着色器绘制圆。如何将片段和/或顶点着色器更改为具有平滑的圆。
顶点着色器:
#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);
答案 0 :(得分:0)
您好,您实际上看到了什么?发布屏幕截图。无论如何,对于光滑的边缘,我们都有所谓的抗锯齿。 使用此行将您的glControl启用
void takesFunctionPointer(void (*)());
struct MyFunctor {
void operator()();
};
// ...
takesFunctionPointer([] { return MyFunctor{}(); });