Pio*_*cki 5 c++ opengl fonts ftgl
我将从图像开始:

上图提供了以两种不同方式实现的文本,两者使用相同类型的字体 - Arial,粗体,大小11.
底部的一个是在图像编辑程序中创建的,而一个在我的OpenGL应用程序的顶部.更准确地说,使用FTExtrudeFontFTGL库:
font_ptr font(new FTExtrudeFont(filename.c_str()));
Run Code Online (Sandbox Code Playgroud)
我的问题是,为什么这样画?我假设这可能是不同的调整大小算法的原因,但如果是这样,我怎么能在我的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
Run Code Online (Sandbox Code Playgroud)
这看起来像是由 OpenGL 中的纹理采样引起的。当您正在绘制的纹理(在本例中为字体)与您在其上绘制的四边形大小不同时,就会发生这种情况。
简单的解决方案:确保纹理大小与屏幕上绘制的区域相匹配。不要将 14px 字体渲染到 12px 区域,而是使用 12px 字体或 14px 区域。
在你的问题中你提到你的字体是“size 11”。我不知道 FTGL 库的详细信息,但我假设有一个调用会告诉您可以绘制的特定字符串的最佳尺寸。不要使用自己的数学来计算这些,而是使用库。只要尺寸正确,就不会出现您遇到的问题。
| 归档时间: |
|
| 查看次数: |
559 次 |
| 最近记录: |