Я работаю над движком (http://b2dengine.com/), чтобы реализовать свою игровую идею, которая уже находится в процессе. Теперь довольно долго я застрял с этой проблемой с рендерингом текста.
У меня есть атлас текстур, который содержит все поддерживаемые/необходимые символы в одном изображении png. Отображение символов определяется классом Font
. Все работает отлично, персонажи прорисовываются правильно и точно. Дело в том, что мне также нужна возможность изменить цвет текста. Это звучит, и я уверен, что это просто, но я не могу заставить его работать.
Я использую эту функцию смешивания gl для получения желаемого эффекта.
GL.instance.glBlendFunc(GL.instance.GL_SRC_ALPHA, GL.instance.GL_ONE_MINUS_SRC_ALPHA);
В большинстве случаев это работает, если цвет несколько темный. Но когда он установлен на белый, я вижу артефакты. Скриншот могу предоставить, если нужно. Также, чтобы это работало, «текст» в текстуре должен быть белым.
Я использую opengl 1.1 (да, я знаю, что он старый, но я просто не готов к шейдерам).
Итак, вкратце, мой вопрос: как отрендерить текстуру и полностью заменить цвет? Сохранение только альфа-канала. Например. если он черный и прозрачный на 80% в png, при рендеринге я хочу, чтобы он был зеленым с прозрачностью 80% на экране.