【问题标题】:LibGDX (Freetype) font ugly and unreadablyLibGDX(Freetype)字体丑陋且难以阅读
【发布时间】:2016-03-12 02:49:02
【问题描述】:

我正在使用 Freetype 字体来显示文本。但字体总是看起来: #1 不可读(通过减小字体大小):

        generator = new FreeTypeFontGenerator(Gdx.files.internal("Fonts/LDFComicSans.ttf"));
        FreeTypeFontGenerator.FreeTypeFontParameter parameter = new FreeTypeFontGenerator.FreeTypeFontParameter();
        parameter.size = 5;
        font = generator.generateFont(parameter); // font size 12 pixels
        font.setColor(Color.BLACK);
        font.getRegion().getTexture().setFilter(Texture.TextureFilter.Linear, Texture.TextureFilter.Linear);
        generator.dispose(); 

或#2 丑陋(通过缩放):

generator = new FreeTypeFontGenerator(Gdx.files.internal("Fonts/LDFComicSans.ttf"));
FreeTypeFontGenerator.FreeTypeFontParameter parameter = new FreeTypeFontGenerator.FreeTypeFontParameter();
parameter.size = 30;
font = generator.generateFont(parameter); // font size 12 pixels
font.setColor(Color.BLACK);
font.getData().setScale(0.15F, 0.15F);
font.getRegion().getTexture().setFilter(Texture.TextureFilter.Linear, Texture.TextureFilter.Linear);
generator.dispose();

这些是我使用的相机/视口设置:

  camera = new OrthographicCamera(1280, 720);
        batch = new SpriteBatch();
        viewport = new StretchViewport(100,100,camera);
        viewport.apply();

我认为这是因为视口太小,但我真的不想更改它。有谁知道如何解决这个问题?

【问题讨论】:

  • 我遇到了与图 2 类似的问题。我试图在浮动 y 位置(如 y=26.14)上绘制文本并且字母未对齐。尝试始终在圆角 y (25,26,27) 上绘制它

标签: fonts libgdx scale font-size freetype


【解决方案1】:

按照您的#2 版本,在字体上调用setUseIntegerPositions(false)。默认情况下,它将字符位置四舍五入到最接近的整数,这在一个很小的视口中看起来很糟糕。您可能希望为其提供 mip 贴图并使用 MipMapLinearLinear 作为最小过滤器,以补偿未与屏幕像素对齐的字符(以减少模糊)。

【讨论】:

  • 应该注意,这在从 .fnt 文件创建 BitmapFont 时同样有价值。
猜你喜欢
  • 1970-01-01
  • 2014-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多