zoukankan      html  css  js  c++  java
  • Ogre相关的物理引擎

    可用于OGRE的物理引擎有挺多的,很多开发者已经写好了适配器,将两OGRE与其它的物理引擎进行了连接。

    比较著名的就是:

    NxOgre:连接OGRE和physx。

    http://www.ogre3d.org/tikiwiki/NxOgre

    OgreNewt:

    http://www.ogre3d.org/tikiwiki/OgreNewt

    http://www.ogre3d.org/tikiwiki/OgreNewt+2

    整合的是Newton这个开源的物理引擎。

    OgreODE:

    http://www.ogre3d.org/tikiwiki/OgreODE

    整合的是ODE了。

    OgreBullet:

    http://www.ogre3d.org/tikiwiki/OgreBullet

    据说bullet是排在havok,physx之后的第三大物理引擎,这样就是说是开源中的第一?不过好像这个整合的项目没有继续更新了。

    取舍之后,决定还是看一下OgreNewt。

    想要用到最新的就要去SVN上载,下载一个SVN,然后安装。

    新建一个放OgreNewt的文件夹,右键check out, 加入如下地址:

    https://svn.ogre3d.org/svnroot/ogreaddons/branches/ogrenewt/newton20

    就可以下到最新的版本了,这边这个版本只能用于Newton2.33。

    到Newton官网上下载Newton2.33(有可能要上googlecode上下):

    http://newtondynamics.com/forum/downloads.php

    折腾一天,终于能跑第一个demo。果然头几个吃螃蟹的人都有可能成为先烈。。。

    用Ogre1.74和Newton2.33整合的OgreNewt,并且在VS2010下编译,真是有各种问题需要自己去解决。感觉外国人不太喜欢2010,觉得是个鸡肋,还劝大家不要花钱去买。

    搜了一大堆的英文资料,先把链接发这里存一下。

    解决

    error C2664: 'void std::tr1::_Function_impl2<_Ret,_Arg0,_Arg1>::operator ()(_Arg0,_Arg1) const' : cannot convert parameter 2 from 'boost::arg<I>' to 'OgreNewt::Body *'

    http://www.ogre3d.org/addonforums/viewtopic.php?f=4&t=14610

    一个比较完整的编译Newton和OgreNewt指导教程:

    http://www.ogre3d.org/addonforums/viewtopic.php?f=4&t=14859

    大概就是:

    1.要把 packages\projects\visualstudio_2008 文件夹里的build.sln打开,我这边就是用2010打开,把OGRE的路径配置好。现在2010整个的VC目录的配置换地方了,在视图-》属性管理器里配置,可以自由的选择几个工程配置成只一个目录,方便了不少。

    2.转换之后,直接生成就可以得到debug版本的了。然后去 packages\win32\下各个文件夹中把dmath_d.lib, dScene_d.lib, tinyxml_d.lib and dContainers_d.lib拷贝到packages\win32\debugDll文件夹中,注意不要拷贝并覆盖文件夹中已有的newton_d.lib and dJointLibrary_d.lib两个库。

    3.配好环境,编译OgreNewt。

    然后注意看一下少什么补什么,比如link出错了,就很有可能少了一些lib库,要把这些库拷到你工程能引用到的目录库里。

    最后要如果生成成功,但窗口不出现,就要注意查下OGRE的日志了。这边主要遇到的问题就是现在版本的ogre在debug时读取的是后面_d的资源和plugin文件。

    目前我只能跑第一个basic的demo,后面的编译都有问题。

    第二个demo的问题:

    error C2259: “OgreNewt::BasicRaycast”不能实例化抽象类:

    http://ogre3d.org/addonforums/viewtopic.php?f=4&t=29244

    就是父类的抽象方法子类没有覆盖实现。

    现在运行时又出现了pure virtual function error。真心崩溃。。受不了,我还是换NxOgre试试好了,原以为我这电脑没有独显不能用,后来发现应该是有软件模拟的,只是比较慢而已。

    http://devsupport.ageia.com/ics/support/default.asp

    上官网上下载Physx的SDK,要登入,然后才能在下载页面中下载到。

    查到一个不错的physx基本介绍的blog:

    http://blog.csdn.net/xoyojank/article/details/4368968

  • 相关阅读:
    matlab2016b和c# .net4.0混合编程
    有限元入门
    math.net 拟合
    excel 错误提示以及其他基础知识
    excel的小bug
    Servlet体系及方法
    Servlet学习笔记
    HTTP协议
    Tomcat
    反射
  • 原文地址:https://www.cnblogs.com/gameprogram/p/2376193.html
Copyright © 2011-2022 走看看