要显示文字,首先前提是你已经编译osg时编译了freetype插件
如果没有将显示不了中午,需要重新编译freetype插件,那么如何编译freetype插件呢,osg340+vs2017编译的插件链接在文末
如果你是用cmake自己编译的osg,那么在camke里设置一些参数
这里我用的时我自己编译的freetype,如果使用官方3rdParty包里的则是这样
自己对应相应的include和lib
如果你有新的cmake编译文件,也有编译好的osg,那么要如何只进行插件的编译呢
把你sog文件lib目录下的所有lib复制到编译目录下的lib文件,如下:
这样编译就不会有问题了
然后生成编译文件,我这里使用vs2017
找到Plugins freetype
右键
这里生成的时dll,你可以自己在属性里调整
生成的dll和lib就可以使用了
dll可以直接放到osg的bin里
lib需要你指定目录和在链接器里指定名字,这个我就不想细说了,有问题评论
- 到这里就可以加载中文了,如果你发现还是加载不了 尝试在你的字符前加L,如
text->setText(L"jj显示中文"/*, osgText::String::ENCODING_UTF8*/);
因为只支持宽字符
- 如果还是不行,换个字体
osg::ref_ptr<osgText::Font> font = osgText::readFontFile("fonts/simhei.ttf");
- 还是不行
text->setText(L"jj显示中文", osgText::String::ENCODING_UTF8);