BlendFunc для текстурированных шрифтов с изменяющимся фоном

Я пытаюсь использовать текстурированные шрифты, чтобы отображать текст в моей сцене openGL. Однако у меня возникли проблемы с поиском значений glBlendFunc, которые будут работать.

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

Лучшими значениями, которые я нашел, являются glBlendFunc(Gl.GL_SRC_COLOR, Gl.GL_ONE_MINUS_SRC_ALPHA). Это заставит черный прямоугольник, окружающий персонажа, исчезнуть, но сам персонаж исчезнет, ​​когда фон станет белым.

Пожалуйста помоги!


person Dan Vogel    schedule 07.11.2008    source источник


Ответы (1)


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

В качестве альтернативы вы можете использовать текстуру шрифта, в которую встроена «граница», чтобы помочь отделить символ от фона. Представьте себе белый шрифт с гладким черным «свечением» с альфа-смешением. Шрифт будет хорошо смотреться почти на всех цветах.

person basszero    schedule 07.11.2008