Артефакты на текстуру шрифта на символы
У меня проблема с рендерингом текстур в OpenGL 1.1 с линейным фильтром: он рендерит некоторые артефакты в "0" и "8" следующим образом:
это добавляет вид тени на первый столбец пикселей.
Я попытался все значения GL_TEXTURE_WRAP_S/GL_TEXTURE_WRAP_T безуспешно. Ближайший фильтр не показывает артефакты: но он ужасен (я не хочу использовать этот фильтр)
Текстура шрифта выглядит нормально (я просто скопировал интересующую часть и добавил цвет фона для понимания):
Вы можете скачать его здесь с прозрачным фоном (#00000000)
Смешивание, кажется, тоже хорошо: glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
1 ответ
Решение заключается в использовании предварительного умножения альфа. По сути, вам нужно предварительно умножить ваш RGB на альфа в вашей текстуре. И использовать glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
Вот отличное видео, которое объясняет вашу проблему: