OpenGL: GL_LINE_SMOOTH поддерживается не на всех картах; даже не рисует линии, если только

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

glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);

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

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

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

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


person Community    schedule 23.01.2010    source источник
comment
Мне кажется ошибка в драйвере.   -  person ypnos    schedule 23.01.2010
comment
@ypnos - если он не включил смешивание, то это не так   -  person Kornel Kisielewicz    schedule 23.01.2010
comment
смешивание включено, посмотрите мои правки сейчас   -  person    schedule 23.01.2010
comment
@Newbie: поддерживает ли другая карта смешивание?   -  person Kornel Kisielewicz    schedule 23.01.2010


Ответы (1)


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

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

Пример:

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
person Kornel Kisielewicz    schedule 23.01.2010
comment
я отредактировал свой первый пост сейчас, линии отображаются нормально на другой карте, но с картой, которая не поддерживает гладкие линии, они вообще не будут отображаться, если я не отключу gl_line_smooth - person ; 23.01.2010
comment
@Newbie: Какая еще карта? - person Kornel Kisielewicz; 23.01.2010