glScalef для растровых шрифтов, OpenGL

У меня простой вопрос. Я использую библиотеку FTGL для рисования моего PixmapFont в моем игровом приложении. У меня вопрос — можно ли использовать glScalef() масштабировать растровый шрифт или нет? Из того, что я понимаю, если я должен использовать glRasterPos() вместо glTranslatef() это также, вероятно, считает glScalef() функционировать? Но если так, то нет ли способа масштабировать этот шрифт?

Вот что мне нужно для масштабирования:

Я могу изменить его размер, просто поместив это:

font->FaceSize(12);

Но это дает мне размытый эффект для такого маленького шрифта. Из того, что я где-то читал, хорошо отрисовывать шрифт большего размера, например 72 — и затем уменьшить его, потому что это дает лучшие результаты.

2

Решение

Вместо растровых (растровых) шрифтов необходимо использовать текстурные шрифты. Это рисует шрифт в виде текстуры, сопоставленной с треугольными примитивами, что гораздо более гибко и широко поддерживается, чем рисование непосредственно в кадровый буфер. Смотрите также FTTextureFont документация.

Поскольку это просто рендеринг примитивов OpenGL, этот подход учитывает все обычные преобразования, которые вы устанавливаете с помощью glTranslatef, glScalef и так далее. Для самого чистого результата используйте glOrtho установить идеальную по пикселям проекционную матрицу.

1

Другие решения

Функции рисования растрового изображения OpenGL (glBitmap) не подвержены влиянию конвейера преобразования, так как они идут непосредственно в кадровый буфер. Однако функции рисования растрового изображения всегда были медленными, плохо поддерживались и были полностью удалены из более поздних версий OpenGL.

2

По вопросам рекламы [email protected]