У меня простой вопрос. Я использую библиотеку FTGL для рисования моего PixmapFont
в моем игровом приложении. У меня вопрос — можно ли использовать glScalef()
масштабировать растровый шрифт или нет? Из того, что я понимаю, если я должен использовать glRasterPos()
вместо glTranslatef()
это также, вероятно, считает glScalef()
функционировать? Но если так, то нет ли способа масштабировать этот шрифт?
Вот что мне нужно для масштабирования:
Я могу изменить его размер, просто поместив это:
font->FaceSize(12);
Но это дает мне размытый эффект для такого маленького шрифта. Из того, что я где-то читал, хорошо отрисовывать шрифт большего размера, например 72 — и затем уменьшить его, потому что это дает лучшие результаты.
Вместо растровых (растровых) шрифтов необходимо использовать текстурные шрифты. Это рисует шрифт в виде текстуры, сопоставленной с треугольными примитивами, что гораздо более гибко и широко поддерживается, чем рисование непосредственно в кадровый буфер. Смотрите также FTTextureFont
документация.
Поскольку это просто рендеринг примитивов OpenGL, этот подход учитывает все обычные преобразования, которые вы устанавливаете с помощью glTranslatef
, glScalef
и так далее. Для самого чистого результата используйте glOrtho
установить идеальную по пикселям проекционную матрицу.
Функции рисования растрового изображения OpenGL (glBitmap) не подвержены влиянию конвейера преобразования, так как они идут непосредственно в кадровый буфер. Однако функции рисования растрового изображения всегда были медленными, плохо поддерживались и были полностью удалены из более поздних версий OpenGL.