oFusion问题汇总

 

 

关于.osm的导入

实际操作的时候发现,其实只需要利用TinyXML对其进行解析就行了,

而且只需要知道父子关系,位置,旋转,缩放,就足够了. 其他的摄象机,灯光之类就不需要管了.,

还是程序里面自己创建,进行控制好点.

下面都是从网上搜集的一些资料,.

第一个问题是,Max中东西与导出不一致的问题(位置偏差之类)

1.打开3dsmax,打开max文件
2.Edit -> Select All
3.Group -> Ungroup 重复此动作,直至Ungroup变成灰色
4.右边栏 -> Hierarchy -> Pivot -> Transform
5.右边栏 -> Utilities -> Reset XForm -> Reset Selected

1.打开max文件。<中文版>
2.编辑->全选。
3.组->解组。 重复些操作,直到“解组”变灰色。
4.右边栏->层->重置轴。
5.右边栏->层->变换。
6.保存

一般是没有 reset x form的问题,
另外在其他坛子看到的,Ofusion导出的时候材质有一些问题(黑的或不显示什么的)
一般都是没有使用Ofusion材质导致的,在导出的时候修改一下就可以了 :)
其他应该还有一些问题,遇到再说。
(导出的后自己用LexiView查看一下,如果正确了一般问题就不大了)

第二个问题是,不知道怎么把导出的东西载入。
集中有以下几个问题,不知道怎么把mesh加载到程序里。
有笨办法:把mesh一个一个加到程序里( 这个办法可真笨啊)

好的办法:你注意以下Ofusion导出的文件中有一个OSM文件
打开他,开心了吧!他其实是一个XML格式的文件,你可以用TinyXML试着去解析他(不知道的看Ogre源代码或者Google)
或者,去Ofusion官方下载一个osmload
好了,Ofusion官方还提供了一个demo教你如何使用那个库(不是他是在Ogre1.2基础上做的,所以你检查一下你的版本

第三个问题,可能比较小众一点。
Ofusion导出库导出的东西就是一些静态模型,说的不太准确,意思就是你不能控制的。
如果你想去控制他,Ofusion也提供了一些方法,他提供了几个回调函数,可以让你控制实体,动画,摄像机,灯光等等。
你去实现这几个回调函数就可以控制了。如果你还想更方便一些,可以自己做编辑器或者买商业版本。

第四个问题
Ofusion的这个库只提供load没提供unload,不过这个也并不难实现,你可以自己去写一个。

 

用记事本打开OgreSDK\bin\debug\resources.cfg,添加一行FileSystem=你刚才那个文件夹的相对路径(没试过绝对路径好不好使)现在可以打开vc了,打开oFusion网站上提供的oScene loader demo application source code,网站上这个是for vc8.0的找到oSceneLibDemo.h文件中的createScene方法中的oScene.initialise("maxroom.osm", &oe_Callback);这一行,改变为你刚才保存的osm文件,编译,运行。你会发现会产生错误,不要奇怪,因为那时版本原因造成的,在ogre老版本中是通过自带的键盘输入实现键盘输入的,而新版本的ogre已经完全放弃自己的输入,改用OIS录入键盘,鼠标和摇杆输入,所以 将“if (mInputDevice->isKeyDown(KC_C) && timeDelay <= 0) ”这一句改为“if (mKeyboard->isKeyDown(OIS::KC_C) && timeDelay <= 0)”,再将此项目的附加依赖项中添加“OIS_d.lib”(如果你采用的是debug模式),现在再编译运行试试看吧,应该没问题了吧!!!

Ogre命令行工具包使用说明:

本文档由 自由骑士笃志 翻译整理,版权属于OgreTeam。转载请包含本行信息。
这个工具包包含了一些对Ogre资源文件进行操作的预处理命令行工具。
它包括OgreXMLConveter, OgreMeshUpgrade, OgreMaterialUpgrade和MeshMagick。
您可以在 这里获得其WindowsV1.4.7版本的下载,或者在 这里获取其MacOSXV1.4.0版本的下载。以上两个版本均是2008年3月6日的版本,即译者进行翻译的版本,若需要更多信息和更新的版本,可以访问 Ogre 官方
.[OgreXMLConveter]
OgreXML转换器能够将 .mesh 模型网格文件 和 .skeleton 骨骼文件 由XML格式转换为二进制格式,同时可以将其二进制格式转换回XML格式。它同时也允许你在将XML格式转换为二进制格式时设置LOD层级信息。
如果你的Ogre脚本资源中原本使用的就是XML格式文件的话,那么本工具则是Ogre运行时必须的。所以你能够在OgreSource包的Tools/XMLConverter中找到它。
使用方法
OgreXMLConverter 操作选项 源文件路径 目标文件路径
有用的操作选项包括:
-i             = 控制与命令行。
-l nLODNum = 指定总LOD层级 ( 该项仅在XML格式转换为Mesh格式时有效 )
-d nLODDis = 指定LOD层级间的距离增幅 ( 该项仅在XML格式转换为Mesh格式时有效 )
-p nLODPer = 指定每两级LOD层之间三角面减少百分比 ( 该项仅在XML格式转换为Mesh格式时有效 )
-f nLODNum = 指定两级LOD层之间的固定顶点减少量 ( 该项仅在XML格式转换为Mesh格式时有效 )
-e             = 关闭模版阴影的edge表 ( 当使用模版阴影时该项才有效 )
-r             = 关闭Ogre推荐的顶点缓冲区格式。
-t              = 为法线贴图生成切线信息 ( 当使用法线贴图时该项才有效 )
-o             = 关闭冗余关键桢和运动轨迹的剔除
-d3d           = 优先使用D3D进行颜色格式的填充 ( 在Windows平台中默认该项开启 )
-gl            = 优先使用GL进行颜色格式的填充 ( 在非Windows平台中默认该项开启 )
-E endian       = 设置endian模式,可以选择big, little 或 native ( 默认为native )
-q             = 轻量模式,减少输出。
-log filename    = Log文件名称。(默认为OgreXMLConverter.log)
.[OgreMeshUpgrade]
这个工具能够将你的任何老版本的 .mesh 文件更新到当前版本的 .mesh 文件。
你可以在Ogre.log文件中得到.mesh文件的版本信息。一般来说,Ogre可以运行老版本的.mesh文件,但是性能上会有一些差别。如果你更新了Ogre的其他部分,你尽量应当将.mesh文件更新为同样的版本。
使用方法
OgreMeshUpgrate 操作选项 源文件路径 目标文件路径
有用的操作选项包括:
-i             = 控制与命令行。
-l nLODNum = 指定总LOD层级 ( 该项仅在XML格式转换为Mesh格式时有效 )
-d nLODDis = 指定LOD层级间的距离增幅 ( 该项仅在XML格式转换为Mesh格式时有效 )
-p nLODPer = 指定每两级LOD层之间三角面减少百分比 ( 该项仅在XML格式转换为Mesh格式时有效 )
-f nLODNum = 指定两级LOD层之间的固定顶点减少量 ( 该项仅在XML格式转换为Mesh格式时有效 )
-e             = 关闭模版阴影的edge表
-r             = 关闭Ogre推荐的顶点缓冲区格式。
-t              = 为法线贴图生成切线信息
-d3d           = 转换为D3D颜色格式
-gl            = 转换为GL颜色格式
-srcd3d        = 老版本的mesh文件为D3D颜色格式
-srcgl         = 老版本的mesh文件为GL颜色格式
-E endian       = 设置endian模式,可以选择big, little 或 native ( 默认为native )
注意:
这个工具现在允许你自定义重组你的mesh网格文件的顶点格式。
如果你想更新0.15.0之前的任意一个版本的mesh,那么在该程序运行时会问你是否希望进行顶点格式的重组,你输入’y’就可以了。在0.15.0版本之后的mesh在更新时会允许你对该mesh做更多的操作:例如,你可以对每个独立模型节点的顶点指定不同的顶点结构,你既可以自定义顶点结构,也可以使用’automatic’自动模式。
.[OgreMaterialUpgrade]
这个工具能够将你的任何老版本的 .material 材质文件更新到当前版本的 .material 材质文件。
值得注意的是这个自动更新是不会加入一些新的脚本语法功能的,这么说你可能不好理解。(例子: “scene_blend add”这句可能会被更新为”scene_blend one one”,因为”add”的底层实际上就是”scene_blend one one”,自动更新会将一些高级语法更新为比较直接底层的语法)
另外,这个工具仅对0.13.0版本以下的材质脚本更新有效,对0.13.0版本以后的材质脚本是没有必要进行更新的。
使用方法:
OgreMaterialUpgrade 源文件路径 目标文件路径
.[MeshMagick]
Copyright 2007 by Daniel Wickert
这个工具是对mesh文件和skeleton文件进行一些处理的工具。
大致包括以下功能:
Info          = 输出mesh的信息。
Meshmerge    = 将多个mesh合并为一个mesh文件
rename       = 重命名mesh和skeleton的不同元件
transform      = 旋转,缩放一个mesh
使用方式:
MeshMagick –help=工具名 可以获得更多相关信息。
.[译者笃志补充说明]
1:除MeshMagick该工具外,其他三种工具,使用方式都可以是:将源资源文件拖拽到工具的exe图标上。因为更新程序会将源文件覆盖,所以推荐做下备份后再更新。
2:您可以写批处理文件对其进行使用。格式即为上面的使用方式。
举例:新建一个文本文件test.txt
编辑内容为 OgreMeshUpgrate –d3d –l 4 –d 500 –p 30 E:\Ogre\Media\TestSrc.xml F:\Temp\TestDest.mesh
修改文本后缀名为test.bat
将该批处理文件与OgreMeshUpgrate.exe放置同一目录下,运行
则会自动将E:\Ogre\Media\TestSrc.xml文件转换为F:\Temp\TestDest.mesh文件,同时开启了4层Lod,Lod间距为500象素,每一级间面数差距为30%
3:OgreMeshUpgrate工具推荐使用automatic自动模式顶点格式,效率会比较高,并且省去不少麻烦。
4:MeshMagick工具不推荐使用。本身功能有限,而且长期无人维护,对新的mesh支持不好。

 

你可能感兴趣的:(职场,休闲,oFusion)