OSG 日本語 - eiichiromomma/CVMLAB GitHub Wiki
OSG) 日本語
(標準のまま日本語が使えたので、そのやり方について(2.x)
osgTextでの対応
freetype2を使ってTrueTypeフォントに対応いる上にosgTextはwchar_tやらunicodeやら、ちゃんとしたMultibyte対応をしている。 setTextのソースを見ると分かるがwchar_tにも対応させている。
やり方
- setFontで日本語フォントを渡す
- setTextでwchar_tの文字列を渡す 具体的には以下のような例になる。
osg::ref_ptr<osgText::Font> font = osgText::readFontFile( "fonts/msgothic.ttc" );
.......
osg::ref_ptr<osgText::Text> text = new osgText::Text;
text->setFont( font.get() );
text->setFontResolution( 128, 128 );
text->setColor( white );
text->setCharacterSize( .4f );
text->setPosition( osg::Vec3( 0.f, 0.f, -1.04f ) );
text->setAxisAlignment( osgText::Text::XZ_PLANE );
text->setAlignment( osgText::Text::CENTER_TOP );
text->setText( L"ようこそ OSG の世界へ" );
geode->addDrawable( text.get() );
文字列がwchar_t(ワイド文字リテラル)であることをL接頭辞によって明確にする必要があるのがミソ。 当然だがフォントファイルを参照できるように、OSG_FILE_PATHで指定したフォルダのfontsフォルダの中にc:\Windows\Fonts\msgothic.ttcをコピーしておく。 ちなみに↑のスクリーンショットで使っているのは別のフォント。