Java LibGDX FreeType字体模糊

Java LibGDX FreeType字体模糊,java,android,opengl-es,libgdx,freetype,Java,Android,Opengl Es,Libgdx,Freetype,我正在使用屏幕高度百分比和设置百分比动态生成字体(很明显,将来会乘以密度) 一些注释。 我在读OTF文件。 使用最新版本的LibGDX(1.2.0版) 我有以下问题: (字体中的大字符断裂,看起来非常模糊,但只有在中大字符和小字符时,看起来非常清晰) 我的预设字体大小: //Font sizes, small, med, large as a percentage of the screen. public static float FONT_SIZE_LARG

我正在使用屏幕高度百分比和设置百分比动态生成字体(很明显,将来会乘以密度)

一些注释。 我在读OTF文件。 使用最新版本的LibGDX(1.2.0版)

我有以下问题: (字体中的大字符断裂,看起来非常模糊,但只有在大字符和小字符时,看起来非常清晰)

我的预设字体大小:

//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。

如果使用不同大小的单个位图字体,您需要使用mipmapping使其在所有大小下都具有良好的外观。可能还需要使用MipMapLinearLinear作为minFactor。我使用多个位图字体大小来精确匹配屏幕分辨率,但您能链接或解释一下吗?哦,对不起,我很抱歉误解了您正在做的事情。Mipmapping在您这样做时是不必要的。我也不认为二的威力是您的问题。据我所知,非POT只会让您面临性能降低的风险(如果您使用旧版本的libgdx并使用OpenGL ES 1.0/1.1,则某些设备上可能会出现纯黑色纹理).我没有太多使用字体生成器,所以我不知道还有什么好建议。我使用的是最新版本,完全不知道如果它与res完全匹配,为什么会这样做。如果你愿意,我可以将整个源代码发送给你?我建议你去libgdx.com论坛。你可能会在那里找到知道答案的人。我没有答案首先,我想知道是什么导致了这个问题,所以我和你一样迷茫。我再过一天也不会了。如果我错了,请纠正我,我听说在放大中设置mipmapping没有用。mipmapping仅用于缩小。