gpt4 book ai didi

c++ - 调整大小后丑陋的字体,OpenGL

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:40:32 27 4
gpt4 key购买 nike

我将从一张图片开始:

enter image description here

上图显示了以两种不同方式实现的文本,均使用相同类型的字体 - Arial,粗体,11 号。

底部的是在图像编辑程序中创建的,顶部的是我的 OpenGL 应用程序中创建的。更准确地说,使用 FTGL 库中的 FTExtrudeFont:

font_ptr font(new FTExtrudeFont(filename.c_str()));

我的问题是,为什么画成这样?我假设这可能是不同的调整算法的原因,但如果是这样,我如何才能在我的 OpenGL 应用程序中实现这种更好看的字体(底部字体)?

编辑:

为了渲染字体,我只调用了这个函数:

font->Render(text,         // Text to be displayed
-1, // Line length, which by default is left as -1
pos); // Position in which to draw text

最佳答案

这看起来像是由 OpenGL 中的纹理采样引起的。当您绘制的纹理(在本例中为字体)与绘制它的四边形大小不同时,就会发生这种情况。

简单的解决方案:确保纹理大小与屏幕上绘制的区域匹配。不要将 14px 字体渲染到 12px 区域,而是使用 12px 字体或 14px 区域。

在您的问题中,您提到您的字体是“11 号”。我不知道 FTGL 库的详细信息,但我假设有一个调用会告诉您可以绘制的特定字符串的最佳尺寸。不要用你自己的数学来计算这些,使用图书馆。只要您的尺寸正确,就不会发生您遇到的问题。

关于c++ - 调整大小后丑陋的字体,OpenGL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14111135/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com