Как заставить работать полигональное сглаживание?

Я использую эти вызовы функций:

glEnable(GL_BLEND)
glEnable(GL_POLYGON_SMOOTH)
glBlendFunc(GL_SRC_ALPHA_SATURATE, GL_ONE) 

Не работает и не рендерится.

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

Это не сглаживание.


person Matthew Mitchell    schedule 08.01.2010    source источник
comment
Вероятно, вам следует отредактировать заголовок вашего вопроса; похоже, речь идет не о сглаживании, а о создании полигонов с закругленными углами.   -  person Feanor    schedule 12.05.2010


Ответы (2)


Попробуйте glHint(GL_POLYGON_SMOOTH_HINT, GL_NICEST)

person tkerwin    schedule 08.01.2010
comment
Спасибо за ответ. К сожалению, я получаю: OpenGL.error.GLError: GLError(err = 1280, description = 'invalid enumerant', baseOperation = glHint, cArguments = (GL_POLYGON_SMOOTH, GL_NICEST)) Понятия не имею, что это значит, но ему это не нравится. Я использую OpenGL с Python. - person Matthew Mitchell; 08.01.2010
comment
К сожалению, это должно было быть GL_POLYGON_SMOOTH_HINT, а не GL_POLYGON_SMOOTH. Я обновил свой ответ. - person tkerwin; 09.01.2010
comment
Спасибо, но это все еще не работает. Я хочу создать закругленные углы в своей 2D-игре, поэтому я использую полигоны. Было бы хорошо, если бы углы были ровными. Сглаживание линий работает. Понятия не имею, почему это не так. - person Matthew Mitchell; 09.01.2010
comment
Закругленные углы? Полигональное сглаживание предназначено не для этого, оно должно исправлять неровные края. Углы должны оставаться более или менее острыми, как здесь: databasesandlife.com /blog-attachments/20080320-polygon-1.png . - person tkerwin; 09.01.2010

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

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

person guesser    schedule 12.05.2010