gpt4 book ai didi

java - LibGDX FreeType 字体模糊

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:10:37 25 4
gpt4 key购买 nike

我正在使用屏幕高度百分比动态生成我的字体并设置百分比(显然将来会乘以密度。

一些笔记。我正在读取一个 OTF 文件。使用最新版本的 LibGDX(版本 1.2.0)

我有以下问题:(字体中的大断裂看起来非常模糊,但仅限于mediumLargesmall 看起来非常清晰)

Bad font

我的预设字体大小:

//Font sizes, small, med, large as a percentage of the screen.
public static float
FONT_SIZE_LARGE = 0.175f,
FONT_SIZE_MEDIUM = 0.06f,
FONT_SIZE_SMALL = 0.04f;

我的字体生成器设置

FreeTypeFontGenerator.FreeTypeFontParameter parameter = new FreeTypeFontGenerator.FreeTypeFontParameter();
FreeTypeFontGenerator generator;
this.generator = new FreeTypeFontGenerator(Gdx.files.internal(filename));

创建实际字体:

//Create a new font and add it to available font sizes.
public BitmapFont createFont(float size, float color)
{
this.parameter.size = Math.round(size);
BitmapFont bitmapFont = generator.generateFont(parameter);
bitmapFont.setColor(color);
listOfFonts.add(new FontStorage(bitmapFont, size));
return bitmapFont;
}

现在我在不同的设备上尝试了一些东西,但仍然遇到同样的问题。我想这可能是因为它不是 2 的幂? (字体是否需要是 2 的幂才能均匀?)

字体是在许多不同的屏幕分辨率上绘制的,因此制作三种特定大小的位图字体是不可能的。

有人可以帮我吗?

最佳答案

我想通了,如果你想要最终清晰的字体,你需要设置 3 个设置。

前两个是在从文件(可以是 OTF 或 TTF)创建它之前,它们是:

//Make sure you ceil for your current resolution otherwise you'll be nasty cut-offs.
this.parameter.size = (int)Math.ceil(size);
this.generator.scaleForPixelHeight((int)Math.ceil(size));

下一步是设置放大和缩小过滤器。 (如果你也想要缩放,我不是因为我画的像素几乎是完美的)。无论如何,这是代码:

this.generator = new FreeTypeFontGenerator(Gdx.files.internal(filename));
this.parameter.minFilter = Texture.TextureFilter.Nearest;
this.parameter.magFilter = Texture.TextureFilter.MipMapLinearNearest;

这将在任何分辨率下为您提供超漂亮的清晰字体。 GL.

关于java - LibGDX FreeType 字体模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24727294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com