Почему не "glEnable (GL_POINT_SMOOTH);"работать, чтобы сделать следующую точку в виде круга? - PullRequest
5 голосов
/ 23 ноября 2010

Я пытаюсь закодировать (в c, используя opengl) кусок настольной игры, используя GL_POINT для каждого куска. У меня есть следующий код:

        glEnable(GL_POINT_SMOOTH);
        glHint(GL_POINT_SMOOTH_HINT, GL_NICEST);
        glPointSize(20.0f);
        glBegin(GL_POINTS);

        glVertex2d(200, 200);

        glEnd();

Но почему-то точка всегда отображается в виде квадрата, а не круга ... Кто-нибудь знает почему?

Ответы [ 2 ]

6 голосов
/ 01 декабря 2010

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

glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

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

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