查看: 1984|回复: 4

OSG的OpenFlight插件的小的瑕疵

[复制链接]

该用户从未签到

发表于 2010-4-16 11:38:15 | 显示全部楼层 |阅读模式
原因:因为要做3ds转换成flt模型的需求,就看了看OpenFlight的转换方式,里面的原理是:利用FltExportVisitor 写入模型的头,组,各个节点。    但是我发现在写入:attr文件时,就是 void writeATTRFile( int unit, const osg::Texture2D* texture ) const; 这个函数,
    因为:代码段:
  
std::string name;
   if (_fltOpt->getStripTextureFilePath())

name = osgDB::getSimpleFileName( texture->getImage()->getFileName() );

else

name = texture->getImage()->getFileName();

name += std::string( ".attr" );

因为这里的.attr文件和纹理是针对原来读入的Node节点的,所以这样attr和纹理就是原来的,
  举例如:在E盘的 Plane.3ds文件和纹理,被转换到C: plane.flt 模型,但是纹理和attr却链接到E盘的路径上,觉得这样有些瑕疵,
   应该在这里获取新的路径,把attr写入新的路径,并把纹理文件重写写入到新的路径里。
    这是我的个人看法。请大家轻拍。我的测试版本是osg2.8.2,不知道新的修改过来了吗

该用户从未签到

发表于 2010-4-16 13:56:24 | 显示全部楼层
这个问题没有得到修正,我个人也不好判断您的看法是否有道理。
不过如果您能够把自己的意见发表到osg-users,与国际开发者一起讨论的话,那才是真正值得赞扬的,无论其结论正确与否

该用户从未签到

 楼主| 发表于 2010-4-16 14:27:20 | 显示全部楼层
哦。好的,我自己以前用新浪的邮箱注册过一个osg-usrs, 但是发现好像不能发送邮件,我自己在换个邮箱试试,不过我觉得那个应该是一个小的Bug.而且我测试过,有些3ds的模型确实是不能转换的,具体的原因我还不知道,但是应该是需要慢慢完善吧!谢谢阿锐。

该用户从未签到

发表于 2010-4-16 14:51:47 | 显示全部楼层
国内的邮箱的确比较差劲,容易被屏蔽;您可以尝试gmail,hotmail,yahoo等更为专业的国际邮件服务器;或者也可以尝试一下相对尚可的qqmail

该用户从未签到

发表于 2013-3-29 15:23:28 | 显示全部楼层
OSG的OpenFlight插件 还有别的小问题:如果在某个模型flt文件里面开始定义组(Group)及面(Face)之前没有加PUSH指令,那么虽然Creator可以打开这个flt文件,但是osgviewer就看不到这个模型,osgconv也转换不出来模型里面的内容。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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