fonts libgdx rendering

fonts - Artefactos de representación de BitmapFont



libgdx rendering (2)

Después de jugar un poco, pensé en lo que debe ser pirateado para que funcione.

La esencia: reducir todos los glifos para que no se superpongan.

Mi solución en Scala :

def fixFonts(fontsMap: ObjectMap[String, BitmapFont]) { def fixFont(font: BitmapFont) { for { glyphPage <- font.getData.glyphs.toSeq.filter(_ != null) glyph <- glyphPage.toSeq.filter(_ != null) } { glyph.u2 -= 0.001f } } fontsMap.iterator().asInstanceOf[java.util.Iterator[Entry[String, BitmapFont]]]. asScala.foreach { e => fixFont(e.value)} } def load() { skin = manager.get(SKIN_FILE) fixFonts(skin.getAll(classOf[BitmapFont])) }

EDITAR (6. 4. 2015): código actualizado para trabajar en Scala 2.11.4 y LibGDX 1.5.3 .

Tengo la escala de configuración de la GUI para ocupar toda la pantalla (ventana). Los widgets de control están bien, pero el escalado de fuentes es terrible: hay artefactos de glifos vecinos (debido a algunos errores de redondeo, supongo).

Puedes verlo claramente en el lado derecho de T:

Intenté establecer varios valores en el área de relleno en Hiero, pero todos esos valores afectan la forma en que se representa la fuente: agregan espacio entre los caracteres en el renderizado, no solo para una textura como yo quería.

¿Alguna idea de cómo arreglar estos artefactos? No quiero la generación dinámica de fuentes o fuentes múltiples, quiero una escala ordinaria del vecino más cercano (voy a buscar pixeles). Supongo que esto es un error en libGDX 1.2.0 .


Ajusté la solución de monnef anterior para el uso de Java de esta manera:

public static void fixFont(BitmapFont font) { for (Glyph[] page : font.getData().glyphs) { if (page == null) { continue; } for (Glyph glyph : page) { if (glyph == null) { continue; } glyph.u2 -= 0.001f; glyph.v2 -= 0.001f; } } }

Tenga en cuenta que, además, glyph.v2 también se ajusta, sin esto todavía tengo artefactos.

Nota: Esta es una solución temporal y probablemente debería solucionarse editando la fuente.