Рендеринг шрифтов OpenGL-ES (на iOS) ... Проверка работоспособности - PullRequest
4 голосов
/ 12 сентября 2010

Я пишу игру для iOS.У него есть игровая карта, и я использую OpenGL, чтобы нарисовать ее, потому что другие варианты были слишком медленными.У меня есть единицы на карте, представленные буквенными буквами, а-ля Dwarf Fortress .Тем не менее, рендеринг текста в OpenGL кусается.

В настоящее время я использую измененный по производительности мутант Texture2D, который был достаточно хорош для создания прототипа, но у него есть все виды проблем, и он не дает мне хороших результатов.

Этокажется, что проверенный способ сделать это состоит в том, чтобы сгенерировать файл изображения «каталога» со всеми буквами, отображаемыми шрифтом, и затем отобразить их на текстуру, когда вы хотите их отобразить (см. здесь).Тем не менее, я много увеличиваю и уменьшаю масштаб карты.Для этого Retina Display и iPad потребуется несколько разрешений.Ужасно.

Думая, что должен быть лучший способ, я проверил FTGLES , который может динамически отображать шрифты TTF / OTF на iOS / OpenGLES.Это не подключи и играй.Я боролся в течение нескольких дней, чтобы приблизить его к работе, но я думаю, что теперь у меня есть золотой путь.Итак ... я сумасшедший?Я создаю намного больше работы, чем я должен для себя?

Ответы [ 2 ]

3 голосов
/ 15 сентября 2010

Да, это было сумасшествие и создавало больше работы для себя.В моем конкретном случае Texture2D содержал почти все секреты, которые мне были нужны.Я решил взять на себя владение Texture2D, изучить его и сделать его своим.Рендеринг более крупным шрифтом (50 точек) и затем уменьшение масштаба, я получаю действительно хорошие результаты в OpenGL:

alt text

Обратите внимание, что я уже оптимизировал, создав один объект Texture2D дляписьмо, а затем искать их, когда они мне нужны.Я могу и дальше оптимизировать, собрав все свои текстуры и сделав один вызов OpenGL для каждого цвета.

1 голос
/ 12 сентября 2010

Вот хорошее наложение текстуры учебник Я использовал. Очевидно, что для этого используются списки отображения и другие вещи, которые вы не можете сделать в OpenGL ES, однако преобразование не должно быть слишком сложным. Вы также можете посмотреть на различные техники здесь . Одна техника рисует каждого персонажа с лицами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...