2012-03-10 18 views
6

Soy bastante novato con libGDX para Android (un buen contenedor OpenGL que también puede funcionar en PC), y he leído algunos buenos ejemplos de cómo mostrar imágenes y formas. Sin embargo, cuando quise ver cómo mostrar texto, noté que lo único que podía ver que esta biblioteca admite es BitmapFont, que usa un mapa de bits para cada carácter. Está bien para algunas resoluciones y tamaños de fuente, pero se vuelve borrosa/pixelada para otros casos.¿Cómo mostrar texto vectorizado usando libgdx?

¿Hay alguna otra manera de mostrar el texto usando esta genial biblioteca? ¿Algún tipo de forma de mostrar fuentes vectoriales, y también usar extensiones de archivos de fuentes más populares que no sean ".fnt"?

Respuesta

4

Hay una entrada reciente en el blog de badlogic sobre generating bitmap fonts on the fly from TrueType font files que debería abordar sus problemas con los archivos de fuente empaquetados que son feos cuando se escalan.

Cuando era nuevo en Android y libGDX pasé algún tiempo buscando una solución de fuente vectorial para dibujar texto escalable a través de libGDX. Nunca encontré nada (ni siquiera Java genérico o Android genérico). La mayoría de las soluciones de fuentes que encontré están construidas sobre bitmaps o eran sistemas de renderizado muy complejos (que serían difíciles de adaptar a OpenGL). Esto también me parece extraño y no he encontrado una explicación coherente.

+0

esto parece muy prometedor, y la gente allí escribió que funcionó para ellos. ¿Cómo es que aún no está construido? ¿Tiene algunos errores que deben corregirse ...? –

+0

también, ¿no hay otra solución que incluya dibujar líneas de bajo nivel y píxeles para las fuentes, en lugar de tener que crear mapas de bits? –

+0

En cuanto a por qué no está integrado, sospecho que no es parte de libgdx porque es nuevo y no ha sido sometido a muchas pruebas. Estoy seguro de que les interesaría la ayuda o los informes sobre su utilidad. En cuanto a otras soluciones que usan primitivas OpenGL, he buscado y no he encontrado nada (por supuesto, no puedo probar que sea negativo). Sin embargo, sospecho que a la mayoría de la gente le gusta la optimización de generar un mapa de bits. –

0

No creo que haya una forma adecuada de hacerlo, porque libgdx también funciona en OpenGL. OpenGL usa texturas para mostrar imágenes, para que su dispositivo pueda dibujar imágenes de hardware aceleradas. No uso libgdx, pero probablemente pueda escribir su propia función para dibujar primero sus fuentes basadas en vectores en una textura y luego dibujar su textura en la pantalla. -> Pero luego ya no está vectorizado.

+0

Bueno, si llamo a una función que sepa en qué tamaño mostrar la fuente, ¿no sería exactamente lo mismo que mostrarla de la manera "correcta"? seguramente hay alguna biblioteca por ahí que lo haga, ¿no? –