gpt4 book ai didi

visual-studio-2008 - glutBitmapCharacter() 太慢了,有没有在 OpenGL 程序中使用字体的替代方法?

转载 作者:行者123 更新时间:2023-12-01 05:21:43 27 4
gpt4 key购买 nike

我正在开发一个 3D 应用程序,试图在屏幕上呈现一些文本。

但是如果文本超过 10 个字符,FPS 会下降到 2,这真的很烦人。

我的程序经常使用 glutPostRedisplay() 函数,这就是它肯定会变慢的原因。

有什么方法可以让我的程序使用 glutBitmapCharacter() 显示字体并且没有任何延迟。

我在 win7 x64 上使用 VC++ 2008。

PS:我尝试在 VC++ 中为 OpenGL 安装 Freetype,但最终放弃了。
如果我指向一些在 VC++ 2008 中安装任何字体库的“白痴”指南,我也会很感激。

最佳答案

如果您不需要矢量字体,那么文本显示的简单方法是使用位图字体纹理(固定间距样式)。您可以通过从 GDI 渲染它自己来创建字体图像,或在 MSPaint 中手动编辑它...或从 inet 下载

对于简单的文本,我现在使用 16x16 像素字体,...在组织为 16x16 字符数组的图像中(纹理应该是正方形大小,因此您不需要使用扩展名)。

通过混合,您可以实现像字符一样的 Sprite 和/或透明度
使用 glColor 您可以更改文本和/或 alpha 的颜色
这种方式最好看的文本渲染是使用非透视投影矩阵
和纹理过滤 GL_LINEAR。

当然,你必须编写你的 char 和 text draw 函数,但它们并不复杂(char 是简单的方形四边形,你只需要从 ASCII 计算纹理坐标,并且 text 是单个用于调用 char 和位置更新)

关于visual-studio-2008 - glutBitmapCharacter() 太慢了,有没有在 OpenGL 程序中使用字体的替代方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16134627/

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