【问题标题】:How do I render high quality monochrome text with SDL2_TTF?如何使用 SDL2_TTF 渲染高质量的单色文本?
【发布时间】:2017-12-07 07:17:20
【问题描述】:

我正在使用老式低分辨率图形编写游戏。我正在使用 SDL2_TTF 呈现单色文本,但似乎没有正确提示。我使用TTF_SetFontHinting(font, TTF_HINTING_MONO) 设置提示,并使用所有三个渲染函数(TTF_RenderText_SolidTTF_RenderText_ShadedTTF_RenderText_Blended)渲染文本,但我对结果不满意。这是我从TTF_RenderText_Solid 得到的输出。其他函数输出抗锯齿文本。

这是我想要的输出。这是 Mac Terminal 模拟器渲染的 Andale Mono 12pt(同上),放大了 4 倍。

输出的质量很重要,因为文本在显示给玩家时放大了​​ 4 倍。为什么它们不同?我认为 FreeType 是事实上的字体渲染库,所以 SDL2_TTF 和 Terminal 都会使用它。

我只是错误地使用了 SDL2_TTF 库吗?

【问题讨论】:

  • 其他提示模式是什么样的?
  • 更改提示模式似乎对输出没有影响
  • 您的 FreeType 是如何构建的?有/没有(最近没有)获得专利的 Truetype 字节码解释器?
  • 我没有直接使用FreeType所以我不知道
  • 其实改变提示模式确实会稍微改变文字,但质量还是不如Mac Terminal

标签: c++ sdl-2 sdl-ttf


【解决方案1】:

我不想弄乱 SDL2_TTF 库来达到我想要的效果,所以我决定寻找一种看起来更好的不同字体。我发现如果我选择 font that looks pixelated 并以正确的点大小渲染它,一切看起来都很好。

【讨论】:

  • 当您想要渲染像素化文本时,请始终使用真正的“像素字体”。这些字体被设计为以特定的点大小呈现,以完全适合屏幕的原始像素。您只能以 1x 2x 3x 等渲染它们,否则它们看起来不正确。如果您特别想要使用 SDL 的像素字体,则从位图字体渲染矩形几乎更容易。顺便说一句,你可以在 Dwarf Fortress 网站上找到一些不错的免费游戏:dwarffortresswiki.org/Tileset_repository
猜你喜欢
  • 1970-01-01
  • 2022-11-11
  • 2020-12-21
  • 2022-07-30
  • 2020-06-15
  • 1970-01-01
  • 2017-10-30
  • 2012-11-12
  • 2020-04-11
相关资源
最近更新 更多