Фон
Я работаю над игрой Bitfighter. Мы по-прежнему совместимы с OpenGL 1.1 и компилируем для OSX, Windows и Linux.
Мы используем векторную графику для всего, включая рендеринг текста и манипуляции. Мы используем слегка измененную вариацию "FontStrokeRoman" от GLUT, которая представляет собой всего лишь пучок статических линий. Нам это нравится, поскольку он, кажется, работает очень хорошо, легко вращается/масштабируется/управляется. Мы также разрешаем в игре чат, чтобы текст рисовался "на лету".
Проблема
Мы хотим использовать больше/разных шрифтов.
Мы нашли несколько других шрифтов, которые нам нравятся, но все они являются шрифтами TTF-типа, которые построены как полигоны (с кривыми и т.д.) вместо штрихов или шипов. Это вызывает несколько проблем:
- Нам нужно будет использовать текстуры (которых мы до сих пор избегали в игре)
- Они не легко изменяются/вращаются/и т.д.
- Производительность значительно меньше (теоретически?)
Мы экспериментировали с преобразованием шрифтов TTF в массивы точечных полигонов, а затем с триангуляцией заливки. Это, однако, было трудно сделать красиво - пиксельный намек/сглаживание кажется трудным сделать в этом случае.
Мы даже экспериментировали с скелетонированием полигональных шрифтов с использованием библиотек типа "campskeleton", поэтому мы можем выводить шрифт векторного штриха (с небольшим успехом, который выглядит хорошо).
Что нам делать?
Я знаю, что этот вопрос несколько общий. Мы хотим сохранить производительность и возможности манипулирования текстами, но можем использовать лучшие шрифты. Я открыт для любого предложения в любом направлении.
Некоторые решения могут быть ответом на следующее:
- Как мы правильно сглаживаем текст на основе полигона и сохраняем производительность?
- Действительно ли текстуры работают хуже, чем статические массивы точек? Возможно, у меня есть ошибочное предположение.
- Можно ли быстро или быстро изменять размер шрифта?
- Что-то совсем другое?