OpenGL: GL_LINE_SMOOTH не поддерживается на всех картах; даже не буду рисовать линии, если только - PullRequest
6 голосов
/ 23 января 2010

Прежде всего, какова цель этого кода?

glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);

Я мог бы поставить туда GL_DONT_CARE, но это не делает мои линии нарисованными, , если я не использую glDisable(GL_LINE_SMOOTH)

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

Или я должен сделать собственные функции для этого и проверить, поддерживаются ли гладкие линии и т. Д. ... и каждый раз, когда я хочу рисовать плавные линии, мне нужно вызывать эту функцию, которая проверяет, поддерживается ли она? Argh.

Редактировать: На моей другой карточке линии плавные, на другой моей карточке они даже не отображаются, если я не отключу плавные линии. Так что это проблема, а не glEnable (GL_BLEND)

1 Ответ

5 голосов
/ 23 января 2010

glHint, как следует из названия, является подсказкой для водителя. Не нужно ничего достигать. Фактическое функционирование glHint зависит от графического драйвера.

Кроме того, чтобы включить LINE_SMOOTH ing, необходимо включить смешивание. Вы включили GL_BLEND? И пока вы занимаетесь этим, выберите функцию glBlend!

Пример:

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