如何在OpenGL中显示unicode文本?

Ser*_*rge 6 windows opengl unicode

有没有一种在Windows下在opengl中显示unicode文本的好方法?例如,当您必须处理不同的语言时.最常见的方法就像

#define FONTLISTRANGE 128
GLuint list;
list = glGenLists(FONTLISTRANGE);
wglUseFontBitmapsW(hDC, 0, FONTLISTRANGE, list);
Run Code Online (Sandbox Code Playgroud)

只是不会这样做,因为你无法为所有unicode字符创建足够的列表.

Rob*_*mas 15

您还应该查看FTGL库.

FTGL是一个免费的跨平台开源C++库,它使用Freetype2来简化OpenGL应用程序中的字体渲染.FTGL支持位图,像素图,纹理贴图,轮廓,多边形网格和拉伸多边形渲染模式.

这个项目暂时休眠了一段时间,但最近又回到了开发阶段.我没有更新我的项目以使用最新版本,但你应该检查出来.

它允许通过FreeType字体库使用任何True Type字体.


Bax*_*imo 6

我建议阅读这个OpenGL字体教程.它适用于D编程语言,但它很好地介绍了实现用于使用OpenGL渲染文本的字形缓存系统所涉及的各种问题.本教程涵盖Unicode合规性,抗锯齿和字距调整技术.

任何了解C++的人都很容易理解D,而且大部分文章都是关于通用技术,而不是实现语言.

  • 您的链接已死。 (2认同)

小智 0

您还可以按语言对字符进行分组。根据需要加载每种语言表,当需要切换语言时,卸载以前的语言表并加载新的语言表。

  • 对于亚洲语言来说,这不是一个很好的解决方案,因为亚洲语言的原始字符数量仍然相当大(数千个字形),并且在任何给定的 GL 应用程序中,您可能会使用其中的一小部分。动态字形缓存方法更好。 (5认同)