В последний раз, когда я искал это (для игры для iPhone), я пробовал разные варианты, но не мог найти тот, который делал все, что я хотел. Мне нужно было визуализировать одну текстуру, используя очень маленькие символы из коммерческого шрифта TTF. Мне нужно было иметь возможность указывать диапазоны символов, чтобы он содержал только те символы, которые мне нужны. Я хотел, чтобы он упаковывал глифы так плотно, как мог. Мне нужны были координаты текстуры во время выполнения. Я не заботился о «реальном» кернинге, но мне нужно было измерять глифы во время выполнения, чтобы они были разумно разнесены. Поэтому я написал небольшое приложение для Windows, которое отображало все символы и сохраняло интервалы ABC (как сообщалось в Windows) вместе с координатами текстуры.
Кстати, если вы хотите визуализировать очень маленький текст (например, менее 16 пикселей в высоту) под XP или Vista, вы столкнетесь с недостатками сглаживания Windows. Простым решением для меня было использование http://drwatson.nobody.jp/gdi++/index-en.html для получения прозрачной суперсэмплинга. Если бы я начинал все сначала, я бы, вероятно, использовал тот же подход, но взглянул бы на FreeType2, а не на рендеринг собственного текста.
Если ваш текст не обновляется часто, вы можете просто использовать визуализацию текста платформы (или, возможно, FreeType), чтобы визуализировать целые куски в текстуру по мере необходимости во время выполнения. Тогда вам просто нужно визуализировать один квад для каждой строки, но распределение текстур становится более сложным. С другой стороны, вы получаете безупречный рендеринг и разметку текста на этих сложных азиатских языках вместе со значительно более быстрым кодом GL. Рендеринг множества отдельных персонажей стоит дорого, даже с вырожденными трип-полосами или еще чем-то.