许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  NxOgre使用经验总结

NxOgre使用经验总结

阅读数 2
点赞 0
article_banner

  最近在做基于NxOgre的赛车游戏..用到了很多NxOgre的功能,也遇到了很多问题.特在此记录下来遇到的问题和决绝的方案.....
  1) 赛车启动/刹车后一直运行,向完全没有阻力的样子

设定mLinearDamping参数

  1. NxOgre::RigidBodyDescription description;
  2. // 线性抖动参数,用于对直线运行的抖动
  3. // 亦可实现控制摩擦力效果
  4. description.mLinearDamping = 0.305;

  5. 2)NxOgre绑定Mesh后模型没有显示或者显示不正常

  6.        Mesh大小有问题,在NxOgre中以米为计量单位,而在3Dmax中很容易将模型做为几十到几百个长度,而Ogre计量单位为相对单位,可以想象一下一辆好几百米长的赛车,肯定不符合常理.可以通过更改模型大小来实现.
     

  7. 3)赛车容易翻车

  8.        同2),修改模型大小,使其合乎常理
     

  9. 4)在3Dmax中对模型进行缩放后,导入Ogre/NxOgre中没有反应,仍旧是缩放之前的大小.

  10.        我使用OgreMax导出mesh,在里面没有找到设置Scale的设置选项,借助OgreCommandLine工具中的MeshMagick工具对mesh模型进行缩放进行模型的缩放可以解决问题
  11. 例如 : MeshMagick transform -scale=0.00120633/0.00110835/0.00110835 car002Glass.mesh
  12. 5)关于3Dmax到处模型在Ogre中没有阴影的问题

  13.        可以有两种办法
     

  14.        1.在OgreMax的SceneSetting中的Mesh中勾选Generate Edge List选项.
     

  15.        2.生成Entity后设置Entity::getMesh()->setAutoBuildEdgeLists(true)
     

  16. 6)关于NxActor构造的赛车可能不能启动的情况(进入睡眠状态)

  17.        设置NxActor::wakeUp(1E8)设置一个较大的参数,可以设置此NxActor不睡眠.
     

  18. 7)关于NxOgre场景切换问题

  19.        开始我只使用了一个SceneManager,在场景切换的时候出现模型奇妙的崩溃,后来才发现是在场景退出的时候调用了clearScene()清除了全部的场景内物体,由于NxOgreScene需要更新场景内的物体,而此时场景内物体全部被清除,会导致崩溃.所以我干脆创建了两个SceneManager,一个用于包含物理的游戏场景,另一个不包含物理(用于菜单,选项界面等),这样问题差不多就解决了.
     

  20. 6)开启Compositor混合后GUI受到影响, 将false改为true
  21. mGUIRenderer = new CEGUI::OgreCEGUIRenderer(mRenderWindow,
  22.                                            Ogre::RENDER_QUEUE_OVERLAY,
  23.                                            true,
  24.                                            sceneManager );
  25. 7)关于碰撞模型导入的问题.

  26.        这几天关于碰撞模型导入的问题一直困扰着我,我用superracing的模型,更改成.nxs文件,导入程序里面开始的时候这样写,程序在debug模式下没有问题,但是在release模式下,清理NxWord的时候就会崩溃..试了好多方法,也修改了模型,依旧没有解决
     
  27. NxOgre::ResourceSystem::getSingleton()->openArchive("media","file:../../media/models/tracks/common");
  28. std::string nxs = "media:" + trackId + ".nxs";
  29. NxOgre::Mesh*triangleMesh = NxOgre::MeshManager::getSingleton()->load(nxs.c_str());
  30. NxOgre::TriangleGeometry*triangleGeometry = new NxOgre::TriangleGeometry(triangleMesh);
  31. PhycisSystem::getScene()->createSceneGeometry(triangleGeometry);

  32.        今天早上,我把media的路径更改为完整路径file:https://www.gofarlic.com/program/Ogre/S-Racing V0.3/S-Racing/media/models/tracks/common,竟然奇迹般的没有任何异常了,太囧了...
     


  1.    8)记录NxWheel调节赛车操作的参数
     
  2. 记录一下NxOgre中NxWheel的一些常用参数以及作用
  3. #详细参数
  4. #设定弹簧减震系数
  5. #实现赛车缓冲,左右微震更加逼真
  6. #缓冲距离
  7. SuspensionTravel=0.125
  8. SuspensionSpring=2500
  9. SuspensionDamper=5000
  10. #线性抖动参数,用于对直线运行的抖动
  11. #亦可实现控制摩擦力效果
  12. AngularDamping=1.75
  13. Lineardamping=0.075
  14. #-------车轮参数-------------------
  15. #设定轮胎侧向受力,可实现漂移效果
  16. LateralTireAsymptoteSlip=2
  17. LateralTireAsymptoteValue=0.01
  18. #数值越小月不容易翻车,但是漂移效果越差
  19. LateralTireExtremumSlip=0.35
  20. LateralTireExtremumValue=0.02
  21. #设定漂移程度
  22. LateralTireStiffnessFactor=2500
  23. #手动设置InputLongSlipVelocity,还是参数设置
  24. #false手动,true自动
  25. EnableInputLongSlipVelocity=false
  26. #设定动力对正向的加速度等的影响
  27. LongitudalTireAsymptoteSlip=2
  28. LongitudalTireAsymptoteValue=0.5
  29. LongitudalTireExtremumSlip=0.2
  30. LongitudalTireExtremumValue=0.02
  31. LongitudalTireStiffnessFactor=157500
    免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空