Артефакты на текстуру шрифта на символы

У меня проблема с рендерингом текстур в 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);

Вот отличное видео, которое объясняет вашу проблему:

http://www.youtube.com/watch?v=dU9AXzCabiM

Другие вопросы по тегам