我对字体渲染很陌生,我正在尝试使用 freetype 生成有符号距离场,以便它可以在 OpenGL 的片段着色器中使用。这是我尝试过的代码:
error = FT_Load_Glyph(face, glyph_index, FT_LOAD_DEFAULT);
if (error)
{
// Handle error
}
error = FT_Render_Glyph(face->glyph, FT_RENDER_MODE_SDF);
if (error)
{
// Handle error
}
也许我完全误解了 SDF 的想法,但我的想法是我可以给 freetype 一个 ttf 文件,并且使用 FT_RENDER_MODE_SDF 它应该产生一个带符号距离的缓冲区。但是 FT_Render_Glyph 返回一个错误 (19),恰好是“无法呈现此字形格式”。