Рисование гладкого круга

Я использую OpenTK (C#), но также приветствуются предложения OpenGL.

У меня есть список точек, сгенерированный итерацией, имеющий 1 градус на точку вокруг центральной точки, что означает, что есть 361 точка, включая центральную точку. Список точек может отличаться при разных подходах, это нормально. Я могу нарисовать круг с помощью простых шейдеров Vertex и Fragment. Как можно изменить фрагмент и / или вершинный шейдер, чтобы иметь гладкий круг.

Вершинный шейдер:

#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);

1 ответ

Решение

Привет, что ты на самом деле видишь? Опубликовать скриншот. Во всяком случае, для гладких краев у нас есть то, что называется анти ализинг Используйте эту строку для вашего glControl, чтобы включить его

glControl = new GLControl(new OpenTK.Graphics.GraphicsMode(32, 24, 0, 8));
Другие вопросы по тегам