OpenGL: как плавно нарисовать треугольник или многоугольник - PullRequest
1 голос
/ 13 января 2012

Я рисую треугольник с помощью многоугольной моды, как показано ниже:

drawScene(void)
{
    glPopMatrix();
    glEnable(GL_POLYGON_SMOOTH);
    glHint(GL_POLYGON_SMOOTH_HINT, GL_NICEST);
    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    glShadeModel(GL_POLYGON_SMOOTH);

    glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);

    glBegin(GL_POLYGON);
        glVertex3f(x,y,z);
        glVertex3f(x1,y1,z1);
        glVertex3f(x2,y2,z2);
    glEnd();
    glPopMatrix();
}

Вершины (x, y, z, x1, y1, z1, x2, y2, z2) вычисляются с использованием sin () иcos () и im, переходящий в метод drawScene ().Треугольник поворачивается на основе значений sin () и cos ().Моя проблема в том, что при рисовании треугольник не является гладким.То есть внешняя часть треугольника не имеет плавной линии.В приведенном выше коде вместо GL_FILL, если я использую GL_LINE, треугольник выглядит гладким.Но мне нужен закрашенный треугольник.

1 Ответ

1 голос
/ 13 января 2012

В зависимости от графической карты сглаживание может быть недоступно, отключено или может управляться приложением.

Например, взгляните на эту страницу конфигурации с графической карты:

NVidia CP

Таким образом, в этом случае любое трехмерное приложение будет иметь псевдоним, поскольку пользователь выбирает, а вы не можете / не должны обойти этот выбор.Проверьте панель управления / настройки вашей видеокарты, чтобы увидеть, есть ли у нее такая опция (она может не поддерживать сглаживание в зависимости от ее возраста).

Кроме того, пожалуйста, уделите некоторое время написанию описания, точный заголовок для ваших вопросов или никто здесь не будет уделять вам много внимания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...