查看: 4359|回复: 19

字体库已安装但是字体不显示问题

[复制链接]

该用户从未签到

发表于 2011-3-24 21:12:10 | 显示全部楼层 |阅读模式
本帖最后由 zhoujiajun2010 于 2011-3-24 21:54 编辑

请问,我的字体库已经编译成功,也生成了相应的dll文件,怎么字体显示还是不正常啊,

该用户从未签到

发表于 2011-3-25 08:12:23 | 显示全部楼层
您什么都没有说明,并且一行代码都没有给出

该用户从未签到

 楼主| 发表于 2011-3-25 09:59:12 | 显示全部楼层
回复 2# array    

#include<osgViewer/ViewerEventHandlers>

#include <osgDB/ReadFile>

#include <osgViewer/Viewer>

#include <osg/Geode>

#include <osg/Depth>

#include <osg/CameraNode>

#include <osgText/Text>

osg::Node* createHUD()

{


osg::Geode* geode =
new osg::Geode();

//设置字体,必须是汉字字体,如果没有可以自己找个黑体宋体什么的,这里是华文彩云。

// std::string caiyun("fonts/STCAIYUN.TTF");


std::string caiyun(
"fonts/arial.ttf");

//设置状态,关闭灯光


osg::StateSet* stateset = geode->getOrCreateStateSet();


stateset->setMode(GL_LIGHTING,osg::StateAttribute::OFF);


osg::Vec3 position(600.0f,500.0f,0.0f);

//设置字体属性


osgText::Text* text =
new osgText::Text;


geode->addDrawable(text);

//设置字体


text->setFont(caiyun);

//设置位置


text->setPosition(position);


text->setText(

www.osgChina.org);

  //设置相机


osg::Camera* camera =
new osg::CameraNode;

//设置透视矩阵


camera->setProjectionMatrix(osg::Matrix:rtho2D(600,1200,0,600));
// 1360...768


camera->setReferenceFrame(osg::Transform::ABSOLUTE_RF);

  //得到默认设置


camera->setViewMatrix(osg::Matrix::identity());

  //设置背景为透明,否则的话可以设置ClearColor


camera->setClearMask(GL_DEPTH_BUFFER_BIT);

     //设置渲染顺序,必须在最后渲染


camera->setRenderOrder(osg::CameraNode:OST_RENDER);


camera->addChild(geode);

  return camera;

};


int main( int argc, char **argv )

{


osgViewer::Viewer viewer;



osg::ref_ptr<osg::Node> scene = osgDB::readNodeFile(
"ceep.ive");


osg::ref_ptr<osg::Group> group =
new osg::Group;

     if (scene.valid())group->addChild(scene.get());

     //创建HUD

//
group->addChild(createHUD());


group->addChild(createHUD());



viewer.addEventHandler(
new osgViewer::WindowSizeHandler());


viewer.setSceneData(group.get());


viewer.realize();


viewer.run() ;

     return 0;

}

代码就是教材上显示文字的那一节,提示wanging:could not find plugin to read objects from fine.D:\....\fonts\arial.ttf

osgdb_tiffd.dll和osgdb_freetype.dll都生成了,不知是什么原因找不到插件。请多指教,谢谢

该用户从未签到

发表于 2011-3-25 11:33:06 | 显示全部楼层
你生成后都放在哪了

该用户从未签到

发表于 2011-3-25 12:50:29 | 显示全部楼层
可能性1:您的osgdb_freetype插件不存在,或者生成的不正确
可能性2:"fonts/arial.ttf"这个文件不存在

该用户从未签到

 楼主| 发表于 2011-3-25 15:10:30 | 显示全部楼层
生成的地方是默认的地方,在编译install生成的文件夹中的bin目录下,有可能锐哥说的生成的不正确,是不是版本太低了,那我在试试!谢谢啊!

该用户从未签到

发表于 2011-3-25 15:11:56 | 显示全部楼层
可以看看信息窗口的提示啊,到底是无法打开arial.ttf还是找不到arial.ttf

该用户从未签到

 楼主| 发表于 2011-3-25 16:32:51 | 显示全部楼层
本帖最后由 zhoujiajun2010 于 2011-3-25 16:37 编辑

wanging:could not find plugin to read objects from fine.D:\....\fonts\arial.ttf
是这样的提示,应该是找不到。
而且现在发现一个很奇怪的问题,同一个源文件,第一次编译没有错误,现在编译出现了一个错误,
3>LINK : fatal error LNK1168: cannot open D:\Program Files\OSG2\osgbuild\bin\Debug\..\..\bin\osg55-osgd.dll for writing
直接崩溃了!

该用户从未签到

发表于 2011-3-25 17:10:46 | 显示全部楼层
wanging:could not find plugin to read objects from fine.D:\....\fonts\arial.ttf
是这样的提示,应该是 ...

zhoujiajun2010 发表于 2011-3-25 16:32


这明显是找不到插件读取arial.ttf的意思,你的freetype编译成功了吗?成功的话,就是你当前的工程对osg的引用不对,修改工程属性和环境变量


第二个问题是那个库被某个程序占用了,你查查看哪个程序还在用或者前一次运行起来的程序是不是没退出。在任务管理器看看。

该用户从未签到

 楼主| 发表于 2011-3-25 20:34:32 | 显示全部楼层
好的,谢谢啊!!!

该用户从未签到

 楼主| 发表于 2011-3-26 18:39:09 | 显示全部楼层
本帖最后由 zhoujiajun2010 于 2011-3-26 18:47 编辑

我重新下了一套文件,有重装了一遍,发现还是提示相同的错误,图片上是生成的库,其路径也设在环境变量里面了,我现在真不知道如何是好了,请问应用字体还需要设置什么啊!
我都快哭了!!!
tupian.JPG

该用户从未签到

发表于 2011-3-28 08:47:01 | 显示全部楼层
1、D:\....\fonts\arial.ttf这个文件是否存在
2、您的程序是什么配置?Debug还是Release?我看到您的插件库只有Debug版本的

该用户从未签到

 楼主| 发表于 2011-3-28 16:43:42 | 显示全部楼层
这个文件是存在的,我的程序是 Debug的,当时没有编译Release,那我换一下试试!

该用户从未签到

发表于 2011-3-28 21:01:05 | 显示全部楼层
期待问题的解决。。

该用户从未签到

 楼主| 发表于 2011-3-30 20:06:15 | 显示全部楼层
感谢锐哥和各位的解答,问题解决了,非常感谢!!!

该用户从未签到

发表于 2011-3-31 16:19:17 | 显示全部楼层
那么如果您能够把您的改正过程记录下来,分享给其他的人,岂不更好?

该用户从未签到

 楼主| 发表于 2011-3-31 16:46:50 | 显示全部楼层
没问题的锐哥,现在问题是解决了,但是我没有能清楚什么原因,现在正在找具体原因,整理好后发上来!

该用户从未签到

 楼主| 发表于 2011-3-31 17:28:38 | 显示全部楼层
本帖最后由 zhoujiajun2010 于 2011-3-31 17:31 编辑

我看了一阶段,也没发现什么特别的问题,以前我用的是2.8.0,现在改成了2.8.2,第三方库现在用的版本是哪个包含字体的类型是2.3.5的那一个,依照锐哥您的建议,编译 debug和release两个版本,除了包含那些 lib和dll文件,还包含了图中lib中的release文件中的库文件(同种情况下debug版本不成立,这个不知什么原因),还包含了src下的文件,这样字体就正常了,不知表达的是否正确,希望对大家有所帮助,再次感谢锐哥的帮助!!!
文件.JPG

该用户从未签到

发表于 2011-4-1 12:44:16 | 显示全部楼层
这样的解决方法听起来有些奇怪,看来您依然没能发现自己的问题所在

该用户从未签到

 楼主| 发表于 2011-4-1 15:36:43 | 显示全部楼层
我确实没有发现问题所在,我自己也感觉不可思议,我在思考一下!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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