Как заставить полигональное сглаживание работать?
-
19-09-2019 - |
Вопрос
Я использую эти вызовы функций:
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)
Это не отменяет псевдоним.
Решение
Попробуй glHint(GL_POLYGON_SMOOTH_HINT, GL_NICEST)
Другие советы
Это обыденный ответ..но если вам нужны закругленные углы, вы, вероятно, захотите использовать больше вершин по углам и разместить их для придания более округлой формы.Вы также могли бы подумать о том, чтобы сделать это процедурно..но если вы делаете игру и хотите довести ее до конца, я бы обычно рекомендовал, чтобы у вас была конечная позиция вершины в данных (если только у вас нет веских причин сделать ее динамичной).
В качестве альтернативы вы можете использовать текстуру с закругленными углами.Это постепенно становится менее популярным по мере того, как видеооборудование становится более мощным, но по-прежнему достаточно эффективно.