Некрасивый шрифт после изменения размера, OpenGL

Я начну с изображения:

введите описание изображения здесь

На изображении выше представлен текст, выполненный двумя разными способами, оба использовали один и тот же тип шрифта — Arial, полужирный, размер 11.

Один внизу был создан в программе редактирования изображений, а второй вверху в моем приложении OpenGL. Чтобы быть более точным, используя FTExtrudeFont из библиотеки FTGL:

font_ptr font(new FTExtrudeFont(filename.c_str()));

У меня вопрос, почему это так нарисовано? Я предполагаю, что причиной этого могут быть разные алгоритмы изменения размера, но если так, как я могу добиться этого более привлекательного шрифта (нижний) в моем приложении OpenGL?

РЕДАКТИРОВАТЬ:

Чтобы отобразить шрифт, я вызываю только одну функцию:

font->Render(text,         // Text to be displayed
-1,           // Line length, which by default is left as -1
pos);         // Position in which to draw text

5

Решение

Это похоже на то, что будет вызвано выборкой текстур в OpenGL. Это происходит, когда текстура, которую вы рисуете (в данном случае шрифт), не совпадает с размером, на котором вы ее рисуете.

Простое решение: убедитесь, что размер текстуры соответствует области, нарисованной на экране. Не визуализируйте шрифт 14px в области 12px, но используйте шрифт 12px или область 14px.

В своем вопросе вы упоминаете, что ваш шрифт имеет размер 11. Я не знаю деталей библиотеки FTGL, но я предполагаю, что есть вызов, который сообщит вам наилучшие размеры для конкретной строки, которую вы можете нарисовать. Не используйте свою математику для их вычисления, используйте библиотеку. Пока вы правильно выбрали размеры, у вас не должно возникнуть проблемы.

3

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

Других решений пока нет …

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