文字,通常涉及字体,大小,颜色等信息。OSG中使用文字很简单,只要几行代码就搞定了。
#include<osgViewer/Viewer>
#include <osgText/Text>
int main(int argc, char **argv)
{
osgViewer::Viewer viewer;
osgText::Text* text = new osgText::Text;
text->setText("TextTest");
osg::Geode* geode = new osg::Geode;
geode->addDrawable(text);
viewer.setSceneData(geode);
return viewer.run();
}
由于osgText::Text本身不是继承自Node,所以不能直接加到场景中,需要使用一个osg::Geode,然后把osgText::Text加到osg::Geode中。
Geode是一个几何节点,它负责将那些Drawables组合起来,加入到场景中。
上述程序运行之后,需要旋转一下视角,才能看到文字内容。
至于想设置文字的大小,字体等信息,可以通过下面的函数进行设置。
text->setFont(font);
text->setColor(layoutColor);
text->setCharacterSize(20);
text->setPosition(osg::Vec3(0, 0, 0.0f));