Answers:
流行的框架是Crazy Eddie的GUI。
但是尽管这很吸引人,但您自己推出自己的应用程序并不罕见(也许随着范围的扩大而后悔;)
将字形显示在位图上,然后使用OpenGL绘制位图是正常的。
有时,您显示的过渡文本可能只在少数框架中显示。仅使用GL_QUADS + glVertex就足够了。但是对于大量文本或长时间可见性,将GL_QUADS放入VBO中是非常值得的-我已经注意到,这样做可以大大提高性能。
当然,存在生成所需字形的问题。您可以使用像bmfont这样的程序。或者,您可能需要更复杂的渲染,例如,按需自由字体。我一直很高兴地将bmfont与我自己的渲染器一起使用,这非常容易推断。
有很多方法-取决于您想要的...与其他地方一样,没有“最佳解决方案”之类的东西。您的目标平台是什么?您使用哪种语言?关于文本大小调整/旋转是什么-有必要吗?您是否需要能够渲染TrueTypeFonts?关于多语言/ Unicode呢?您想如何存储文本(哪种编码等)?
我过去也使用过FTGL,以及纯的freetype(http://www.freetype.org/ FTGL都基于此),不同类型的位图字体,轮廓字体...现在,我最沉迷于位图字体,但这仅是我个人的喜好。因为我不想处理不同的字符集,编码和类似的东西了-而且位图字体的许可也比TrueTypeFonts更容易和更便宜。并且它可在可加载图像的每个平台上使用。我在openGL中仅使用一个四边形,并在其上映射我的纹理的一部分。另一面是:字体将只能以大约+/- 50%的比例重新调整大小。如果可以,我建议使用位图字体。
如果您还必须处理不同的编码/字符集,则应该找到一种加载和使用TrueTypeFonts的方法(例如与freetype,使用另一个库或您自己的实现一样)...
还可以查看有关此主题的不同教程:
http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=13位图字体
http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=14轮廓字体
http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=15纹理映射轮廓字体
http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=17 2D纹理字体
祝好运!
我正在使用Sean Barret的库在OpenGL下渲染truetype-glyph(stb_image,stb_truetype)。
考虑QML。这是一个功能齐全的UI库,具有易于使用的语法。在我的经验中,它的功能集明显优于CEGUI,并且它的文档,支持和社区功能更好,因为它的主要目标是桌面应用程序,并且能够在屏幕外进行渲染只是一种奖励。
优点:
缺点: