|
我把例子的代码拷贝 字体显示不出来:
/**********************************************************
*Write by FlySky
*zzuxp@163.com http://www.OsgChina.org
**********************************************************/
#include <osgViewer/Viewer>
#include <osg/Node>
#include <osg/Geode>
#include <osg/Group>
#include <osgDB/ReadFile>
#include <osgDB/WriteFile>
#include <osgText/Text>
#include <osgText/Font>
#include <osgUtil/Optimizer>
#include <iostream>
//创建文字
osg::ref_ptr<osg::Geode> createText()
{
osg::ref_ptr<osgText::Text> text = new osgText::Text;
osg::ref_ptr<osgText::Font> font = new osgText::Font();
//读取字体
font = osgText::readFontFile("simhei.ttf");
// 设置字体文件
text->setFont(font.get());
// 设置文字信息
text->setText( L"http://www.OsgChina.org--OpengSceneGraph中国官方" );
// 设置字体大小
text->setCharacterSize( 0.5f );
text->setAutoRotateToScreen(true);
//设置字体颜色
text->setColor( osg::Vec4(1.0f, 0.0f, 0.0f, 1.0f) );
// 设置显示的位置
osg::Vec3f position = osg::Vec3f( 0.0f, -10.0f, 0.0f );
text->setPosition( position );
// 设置对齐方式
text->setAlignment( osgText::Text::CENTER_TOP );
// 设置旋转方式
text->setAxisAlignment( osgText::Text::SCREEN );
//添加到叶节点中
osg::ref_ptr<osg::Geode> geode = new osg::Geode();
geode->addDrawable(text.get());
return geode.get() ;
}
int main()
{
osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer();
osg::ref_ptr<osg::Group> root = new osg::Group();
//创建文字
osg::ref_ptr<osg::Geode> node = createText() ;
root->addChild(node.get());
//优化场景数据
osgUtil::Optimizer optimizer ;
optimizer.optimize(root.get()) ;
viewer->setSceneData(root.get());
viewer->realize();
viewer->run();
return 0 ;
} |
|