La última vez que estaba buscando esto (para un juego de iPhone), probé varias opciones pero no pude encontrar una que hiciera todo lo que quería. Necesitaba renderizar una sola textura usando caracteres muy pequeños de una fuente TTF comercial. Necesitaba poder especificar rangos de caracteres para que solo contuviera los caracteres que necesitaba. Quería que empacara los glifos tan fuerte como pudiera. Necesitaba coordenadas de textura en tiempo de ejecución. No me importaba el interletraje "real", pero necesitaba mediciones de glifos en tiempo de ejecución para que se espaciaran de manera sensata. Así que escribí una pequeña aplicación de Windows que mostraba todos los caracteres y guardaba los espacios ABC (según lo informado por Windows) junto con las coordenadas de textura.
Por cierto, si desea renderizar texto muy pequeño (como menos de 16 píxeles de alto) en XP o Vista, se encontrará con deficiencias con el suavizado de Windows. Una solución fácil para mí fue usar http://drwatson.nobody.jp/gdi++/index-en.html para obtener un supermuestreo transparente. Si comenzara de nuevo, probablemente tomaría el mismo enfoque pero miraría FreeType2 en lugar de la representación de texto nativo.
Si su texto no se actualiza con frecuencia, puede usar la representación de texto de la plataforma (o tal vez FreeType) para representar fragmentos enteros para texturizar según sea necesario en tiempo de ejecución. Entonces solo necesita renderizar un único quad para cada cadena, pero la asignación de textura se vuelve más complicada. Sin embargo, por el lado positivo, obtienes una representación y diseño de texto impecable de forma gratuita en esos idiomas asiáticos difíciles junto con tu código GL significativamente más rápido. La representación de muchos caracteres individuales es costosa, incluso con tiras tri degeneradas o cualquier otra cosa.