OgreNewt碰撞开发平台的初始化

 

先从这里开始:http://www.ogre3d.org/wiki/index.php/Newton_Game_Dynamics

这个教程实际上已经过时了。上面说适用于Ogre 1.1.x,实际上OgreNewt已经为1.4.x做了更新了。

插一句,Newton是一个物理引擎,Ogre是一个图像引擎,两者由OgreNewt连接起来。

根据这个教程,先到http://www.newtondynamics.com/downloads.html下载了Newton的SDK。

然后在http://walaber.com/index.php?action=showitem&id=9下载OgreNewt。

最后下载Media pack。这个包里面实际上就是编译Demo时需要的一些mesh。但在编译Demo时发现,还缺少很多东西。

安装NewtonSDK,将OgreNewt拷贝到一个你能找到的地方。

 

依照教程,用VS打开OgreNewt/下的OgreNewt.sln,这个时候就可以看见这样的项目列表了:

  • OgreNewt_Main - this is the library itself, where all classes are defined.
  • Demo01_TheBasics - an extremely simple demo, where you can throw objects at a solid object, and watch them interact.
  • Demo02_Joints - another simple demo, showing TreeCollision bodies, and simple Joints.
  • Demo03_CollisionCallbacks - how to use advanced collision callbacks to control object behavior through the example of a conveyor belt.
  • Demo04_Raycasting - using raycasting with rigid bodies
  • Demo05_SimpleVehicle - how to use the Newton vehicle system
  • Demo06_SimpleBuoyancy - how to use the Newton buoyancy system
  • Demo07_CustomJoints - simple example of how to make your own joints with OgreNewt.
  • Demo08_RagdollExample - an example of how to make skinned ragdolls using OgreNewt.

    这个时侯就要开始配置项目的属性了。

    首先,在每个项目上点右键选择“属性”。

    1.最上面的“配置”要选择“活动(Release)”(选“Debug”是不行的……)

    2.“C/C++“——”常规”——“附加包含目录”,添加你安装的OgreSDk目录下的include/和samples/include。比如我添加了"C:/OgreSDK/samples/include;C:/OgreSDK/include;“。这是因为demo里面需要ogre的头文件,以及ogre示例的ExampleApplication和ExampleFrameListener两个类的文件。

    3.“链接器”——“常规”——“附加库目录”,添加OgreSDK的lib/。比如我添加了"C:/OgreSDK/lib;”。

  • 按理说现在可以编译、链接成功了,但是运行不了。运行时出现了这些信息:

  • Demo01_TheBasics.exe 中的 0x7c812aeb 处最可能的异常: Microsoft C++ 异常: 内存位置 0x0012faf0 处的 Ogre::FileNotFoundException。
    Demo01_TheBasics.exe 中的 0x7c812aeb 处最可能的异常: Microsoft C++ 异常: 内存位置 0x0012fc20 处的 Ogre::FileNotFoundException。
    程序“[3292] Demo01_TheBasics.exe: 本机”已退出,返回值为 0 (0x0)。

    不要担心,实际上程序是可以运行的。切换到OgreNewt/demos/bin/release/。双击这里的exe就可以运行demo程序了。

    运行程序后你会发现,很多贴图都没有了,物体就是一片白色……不过终究可以运行了……。

    如果是在Debug模式下,运行程序后会中断退出,并在Ogre.log的记录的最后一行出现"*** Initializing OIS ***"然后就没有记录了。在Release时就没有这个问题了。

    在Release模式下,你也可以查看一下Ogre.log,你会发现里面有一些错误,找不到一些材质,所以运行的时候发生了缺少贴图的情况。

     

  • 你可能感兴趣的:(OgreNewt碰撞开发平台的初始化)