2017-07-04 40 views
4

我正在写一个老派低分辨率图形的游戏。我使用SDL2_TTF来呈现单色文字,但似乎没有正确暗示。我用TTF_SetFontHinting(font, TTF_HINTING_MONO)设置提示,并使用所有三种渲染函数(TTF_RenderText_Solid,TTF_RenderText_ShadedTTF_RenderText_Blended)渲染文本,但我对结果不满意。这是我从TTF_RenderText_Solid得到的输出。其他函数输出反锯齿文本。如何使用SDL2_TTF渲染高质量的单色文本?

Actual output

这里就是我想要的输出。这是Andale Mono 12pt(与上述相同),由Mac Terminal模拟器渲染并放大4倍。

Expected output

输出的质量确实重要,因为当显示给玩家的文字被放大4倍。他们为什么不同?我认为FreeType是事实上的字体渲染库,所以SDL2_TTF和终端都会使用它。

我只是简单地使用SDL2_TTF库吗?

+0

其他暗示模式是什么样的? – genpfault

+0

更改提示模式似乎对输出没有影响 – Kerndog73

+0

您的FreeType是如何构建的?有/没有(最近未获得)专利的Truetype字节码解释器? – genpfault

回答

1

我不想与SDL2_TTF库混淆,以达到我期待的效果,所以我决定找到看起来更好的不同字体。我发现如果我选择font that looks pixelated并将其呈现在正确的点大小,一切看起来都很好。

The effect I was looking for

+1

当你想渲染像素化文本时,总是使用真正的“像素字体”。这些字体被设计为以特定点大小呈现以完全适合屏幕的本地像素。你只能渲染这些1x 2x 3x等,否则他们看起来不对。如果您特别需要使用SDL的像素字体,从位图字体渲染矩形几乎更容易。顺便说一句,你可以在矮人堡垒网站上找到一些很好的免费的:http://dwarffortresswiki.org/Tileset_repository。 – null