有没有一种在Windows下在opengl中显示unicode文本的好方法?例如,当您必须处理不同的语言时.最常见的方法就像
#define FONTLISTRANGE 128 GLuint list; list = glGenLists(FONTLISTRANGE); wglUseFontBitmapsW(hDC, 0, FONTLISTRANGE, list);
只是不会这样做,因为你无法为所有unicode字符创建足够的列表.
您还应该查看FTGL库.
FTGL是一个免费的跨平台开源C++库,它使用Freetype2来简化OpenGL应用程序中的字体渲染.FTGL支持位图,像素图,纹理贴图,轮廓,多边形网格和拉伸多边形渲染模式.
这个项目暂时休眠了一段时间,但最近又回到了开发阶段.我没有更新我的项目以使用最新版本,但你应该检查出来.
它允许通过FreeType字体库使用任何True Type字体.
我建议阅读这个OpenGL字体教程.它适用于D编程语言,但它很好地介绍了实现用于使用OpenGL渲染文本的字形缓存系统所涉及的各种问题.本教程涵盖Unicode合规性,抗锯齿和字距调整技术.
任何了解C++的人都很容易理解D,而且大部分文章都是关于通用技术,而不是实现语言.