查看: 6782|回复: 16

中文显示

[复制链接]

该用户从未签到

发表于 2013-1-20 23:21:01 | 显示全部楼层 |阅读模式
我把例子的代码拷贝 字体显示不出来:
/**********************************************************
*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 ;
}

该用户从未签到

发表于 2013-1-20 23:55:35 | 显示全部楼层
具体情况

该用户从未签到

发表于 2013-1-21 07:50:08 | 显示全部楼层
动动鼠标就看到了

该用户从未签到

 楼主| 发表于 2013-1-21 11:38:45 | 显示全部楼层
啥都没有显示。不知道原因

该用户从未签到

发表于 2013-1-21 12:07:37 | 显示全部楼层
本帖最后由 liuzhiyu123 于 2013-1-22 10:57 编辑

osg::ref_ptr<osg::Geode> createText()
{
    XXOO
}
查看这个返回是否正确

该用户从未签到

发表于 2013-1-21 18:05:32 | 显示全部楼层
你字体文件加进去了没

该用户从未签到

 楼主| 发表于 2013-1-22 09:51:00 | 显示全部楼层
simhei.ttf拷贝我的目录下。还是不行

该用户从未签到

发表于 2013-1-22 09:59:31 | 显示全部楼层
本帖最后由 liuzhiyu123 于 2013-1-22 10:58 编辑

osg::ref_ptr<osg::Geode> createText()
{
    XXOO
}
查看这个返回是否正确

该用户从未签到

发表于 2013-1-22 10:23:55 | 显示全部楼层
好像是你字体设置太小了吧
// 设置字体大小
        text->setCharacterSize( 0.5f );
该个20看看

该用户从未签到

发表于 2013-1-26 15:55:35 | 显示全部楼层
木子匕 发表于 2013-1-21 18:05
你字体文件加进去了没

出现这样的提示“Could not find plugin to read objects from file "C:/.../fonts/fudd.ttf"”

这是什么原因啊
1.JPG

该用户从未签到

发表于 2013-1-26 21:14:38 | 显示全部楼层
路径格式对不,一般是“c:\\a\\b\\c.cpp”这种格式

该用户从未签到

发表于 2013-1-28 09:32:00 | 显示全部楼层
没有编译osgdb_freetype插件或者没有找到这个字体文件

该用户从未签到

发表于 2013-1-28 18:17:22 | 显示全部楼层
楼上对的,没有编译osgdb_freetype插件,我是按照网上步骤编译的,还不知道如何编译呢,今天研究了下,还不明了,希望指教一下

该用户从未签到

发表于 2013-1-29 09:47:13 | 显示全部楼层
kodong122 发表于 2013-1-28 18:17
楼上对的,没有编译osgdb_freetype插件,我是按照网上步骤编译的,还不知道如何编译呢,今天研究了下,还不 ...

论坛上相关的教程已经很多了,您可以搜索一下 进行学习

该用户从未签到

发表于 2013-5-16 21:26:41 | 显示全部楼层
你的问题解决了吗?我想请教一下怎么解决。

该用户从未签到

发表于 2013-5-17 11:28:44 | 显示全部楼层
你可以自己用Visual Studio建一个动态链接库工程,取名为osgdb_freetype,把osgdb_freetype的所有的文件拷贝到工程目录下面,再配置好头文件目录与lib文件目录和文件名,直接生成osgdb_freetype插件就行了,不过debug版本的要把输出改为osgdb_freetyped.dll,release版本的就直接是osgdb_freetype.dll。注意这个工程需要链接freetype函数库。
然后拷贝到插件目录下面就行了。注意:插件工程生成时不产生lib文件,生成的插件也没有函数、符号或者类的导出,不过这不用担心,osg是有办法调用其的功能对字体文件进行读写的。

该用户从未签到

发表于 2013-5-17 11:36:58 | 显示全部楼层
没有找到这个读取字库文件的插件
      好像是osgdb_freetype.dll

不需要获得额外的,
  估计是你没有在CMAKE 里配置好freetype(它应该配置相关的INCLUDE ,LIB,都在3rdParty目录下呀)
  也可能你没有把3rdParty没有考虑进来,在你下载安装OSG平台是,有提到过他,你在OSG原官方目录下就可下载到他的压缩包,解压后放到你的OSG版本目录下,然后CMAKE 配置相关的INCLUDE和LIB
编译通过就会有osgdb_freetype.dll
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表