В настоящее время я занимаюсь внедрением рендеринга текста в своем игровом движке, и я решил использовать BMfont AngelCode для генерации текстур шрифтов, а затем иметь OpenGL для рендеринга текстурированных квадов для каждого персонажа. Это прекрасно работало, даже при рендеринге каждого глифа, поддерживаемого FreeFont (в частности, FreeMono), пока я не попытался отрисовать японский (мой японский шрифт - Noto, предоставленный Google).
Рендеринг каждого отдельного символа, поддерживаемого FreeMono в 16px, привел к единственной 8-битной текстуре 1024x1024, что вполне разумно, учитывая, сколько языков покрыто ею. Рендеринг всего, что поддерживается Noto Japanese, в одном и том же размере привел к увеличению в 13 раз текстур, и при этом размере большинство глифов слишком тесны, чтобы их можно было прочитать (я не могу читать по-японски, но если бы я мог, я бы подумал, что еще много проблем с чтением этого текста).
Мой вопрос двоякий:
1) Как игры или мобильные приложения обрабатывают небольшой японский текст? Они придерживаются подмножества кандзи, используют специальный шрифт или минимальный размер шрифта?
2) Как игры обычно обрабатывают абсурдно огромное количество символов, необходимых для японского, китайского, корейского и других языков? Используют ли они FreeType (или что-то подобное) для визуализации текста на лету?
Примечание: я попробовал Meiryo (у меня нет лицензии на использование в моей игре), и результат был намного более читабельным при 16px (хотя все еще ограниченным), но все еще требовалось 14 текстур, чтобы соответствовать всему.
источник