如何使用 SDL2_TTF 呈现高质量的单色文本?
How do I render high quality monochrome text with SDL2_TTF?
我正在用老式的低分辨率图形编写游戏。我正在使用 SDL2_TTF 来呈现单色文本,但似乎没有正确提示。我使用 TTF_SetFontHinting(font, TTF_HINTING_MONO)
设置提示并使用所有三个渲染函数(TTF_RenderText_Solid
、TTF_RenderText_Shaded
和 TTF_RenderText_Blended
)渲染文本,但我对结果不满意。这是我从 TTF_RenderText_Solid
获得的输出。其他函数输出抗锯齿文本。
这是我想要的输出。这是由 Mac 终端仿真器渲染并放大 4 倍的 Andale Mono 12pt(同上)。
输出质量很重要,因为文本在显示给播放器时会放大 4 倍。他们为什么不同?我认为 FreeType 是事实上的字体渲染库,所以 SDL2_TTF 和 Terminal 都会使用它。
我只是错误地使用了 SDL2_TTF 库吗?
我不想乱用 SDL2_TTF 库来实现我正在寻找的效果,所以我决定找到一种看起来更好的不同字体。我发现如果我选择 font that looks pixelated 并以正确的磅值渲染它,一切看起来都很好。
我正在用老式的低分辨率图形编写游戏。我正在使用 SDL2_TTF 来呈现单色文本,但似乎没有正确提示。我使用 TTF_SetFontHinting(font, TTF_HINTING_MONO)
设置提示并使用所有三个渲染函数(TTF_RenderText_Solid
、TTF_RenderText_Shaded
和 TTF_RenderText_Blended
)渲染文本,但我对结果不满意。这是我从 TTF_RenderText_Solid
获得的输出。其他函数输出抗锯齿文本。
这是我想要的输出。这是由 Mac 终端仿真器渲染并放大 4 倍的 Andale Mono 12pt(同上)。
输出质量很重要,因为文本在显示给播放器时会放大 4 倍。他们为什么不同?我认为 FreeType 是事实上的字体渲染库,所以 SDL2_TTF 和 Terminal 都会使用它。
我只是错误地使用了 SDL2_TTF 库吗?
我不想乱用 SDL2_TTF 库来实现我正在寻找的效果,所以我决定找到一种看起来更好的不同字体。我发现如果我选择 font that looks pixelated 并以正确的磅值渲染它,一切看起来都很好。