现在的位置: 首页 > 综合 > 正文

ODE手册(1)安装和使用

2013年02月09日 ⁄ 综合 ⁄ 共 3258字 ⁄ 字号 评论关闭

说明:本手册翻译自ODE官方Manual

(一)安装

  1.获取源代码

    ODE目前只以源代码的形式发布,没有可以直接使用的预编译二进制安装包。因为可以通过很多种不用的方法,使用源码包为各种不同的特定项目进行相应的定制编译。正是基于这种考虑,曾近试图为Linux平台发行的二进制版本也就搁浅了。

    直接下载稳定版 (*.tar.bz2---由SourceForge.net托管)

    从Subversion获取源码包(同样由SourceForge.net托管)

    不管你遇到什么样的问题,都可以在这个邮件列表中提问,或者查看相关提问。当然,如果你真的打算学习并应用ODE的话,就最好加入这个列表中。不管是比较初级的问题还是很有深度的探讨都可以在这里进行,不用担心没有人加入到你发起的讨论中。美中不足的一点是列表中的内容都是英文的,参与讨论并回答各种问题的也大多都是来自世界各地的使用ODE的朋友,毫无疑问只要你掌握了最基本的英文,就可以在这里结识很多优秀的“大人物”,不想提高自己的水平都难。

  2.编译之前需要了解的

   在你开始编译ODE之前,需要搞清楚ODE包含两部分的功能,其中一部分(“ODE”)是用于物理和碰撞检测的代码库,另一部分(“DrawStuff”)是对Win32/X11和OpenGL的封装,用于示例程序的演示,简而言之,就是用于将示例程序模拟所得的数据、结果以图形、图像的方式显示在屏幕上。你完全可以在自己的项目中抛弃它,用自己开发的程序替换。DrawStuff需要你使用的平台对OpenGL的支持(如果是Mac OS X平台的话则需要对X11的支持),ODE则不需要。你也完全没有必要为了使用ODE而去编译DrawStuff和那些示例程序(译者建议:如果是初学者,则最好先从示例程序学起,以熟悉ODE的运作)。

   因为ODE是一款开源软件,ODE的开发团队为了让它能够支持不用的开发平台、环境以及工具,所以就提供了两种不用的编译方法。如果你倾向于是用./configure; make;make install(适用于*nix和Mac OS X平台)的编译安装方式,就请参考“使用Automaker编译”。如果你更倾向于使用IDE,就请参考更下面的“使用Premake编译”。

  3.使用不同的编译方法

   3.1 用Automake编译

    如果你是从Subversion下载的源码包,就需要通过运行autogen.sh脚本来引导自动化工具;如果是直接下载的稳定版就不需要,因为稳定版已经预先做过这一步了。

    $ sh autogen.sh

   注意:在这之前你需要预先安装最近版本的 autoconf(2.61)、automake(1.10)和libtool等工具软件。或许还会出现一些取决于所使用平台的"underquoted definition"警告,但都“无伤大雅”。

    $ ./configure --help

   对新手而言,最好运行上面的命令详细了解各种不同的选项。下面列出的是一些比较重要的:

  • --disable-demos --without-x 让ODE可以在Mac OS X平台上编译
  • --enable-double-presision 启动双精度计算
  • --with-trimesh=opcode 使用OPCODE三角网格支持(默认)
  • --with-trimesh=gimpact 使用GIMPACT三角网格支持
  • --with-trimesh=none 不使用网格支持
  • --enable-new-trimesh 启用可选的OPCODE三角网格支持(必须和--with-trimesh=opcode一起使用)
   一旦./configure成功运行,就可以进入编译阶段
    $ make
    $ sudo make install (因为会有库文件和头文件添加到系统库中,所以至少这一步必须得使用root权限执行)
   3.2 使用Premake编译
              premake是一款编译配置工具,它可以为Visual Studio、Code::Blocks、CodeList以及GNU Make(后续版本中将会添加对XCode的支持)等开发环境生成自定义的工程文件。在ODE的源码包中只提供了一个Windows版的Premake工具:
build/premake4.exe,其它平台的用户可以再这里下载相应的源码包或者二进制包。
     为了生成相应的工程文件,你需呀在ode/build目录下运行Premake工具,并且要给定你的工具集(Premake是一个命令行程序,必须在控制台或者终端中运行)。例如,下面的命令将会生成可以直接在Visual Studio 2008打开的工程文档:
      $ cd ode/build
      $ premake4 vs2008
    所生成的工程文档(如.sln,.vcproj)被放在相应名称的目录下面,在这个例子中生成的工程文档就在 ode/build/vs2008目录下。
    可以通过 $premake4 --help 命令查看其所支持的工具集和选项。下面是一些比较重要的配置选项:
  • --with-demo 使生成的工程包含示例程序和DrawStuff库
  • --with-tests 使生成的工程包含自动化测试组件(如果你需要改动ODE,则建议添加此选项)
  • --no-trimesh 去掉ODE对三角网格几何体碰撞的支持,以减少库文件的大小
    注意:选项的定义必须在工具集前,例如:
    $ premake4 --with-demos --with-tests vs2008
  生成的工程文档提供几种不同可能性的编译配置,像使用单精度或是双精度计算、使用静态库或是动态库等。如果你使用Premake工具来生成GNU Makefiles文件,请查看Makefiles文件中开头关于编译时可选用的配置指令的注释说明,IDE用户则可以如同正常情况下设置编译配置。
  Premake工具最近新添加了对“交叉编译平台“的试验性支持,可以编译出面向Xbox 360,Playstation 3 以及 Mac OS X的通用二进制文件。你可以在Premake的帮助文件中查看其所支持的各种平台。
  与其生成一大堆用户并不一定会用到的支持各种平台组合的默认工程文件,还不如使用 --platform 参数直接生成对应于特定平台和特定环境的工程文件,例如:
  $premake4 --platform=ps3 vs2008

(二)如何使用ODE

   最好的理解该怎样使用ODE的方法是直接去查看ODE所提供的各种test/example程序,这些程序包含在 ode/ode/demo目录下。

   按照如下步骤,创建新的ODE应用程序:

  • 添加 ode/include 到你的include文件路径中
  • #include <ode/ode.h>
  • 在 ode/lib目录中查找适合的库查询路径和库名称,这些路径和文件的名称取决于你所使用的编译配置。例如:ode/lib/DebugSingleDLL 和 ode_singled.lib
  • 添加一个适当的预编译符号dSINGLE(单精度)或者dDOUBLE(双精度),预编译符号的选择必须和你的ODE配置一致。如果二者没有一个被定义,便会默认采用单精度计算(根据译者经验,如果dSINGLE和dDOUBLE都没有被定义,确定无疑是会出错的),如果定义的精度模式与ODE的配置不一致,将会损坏所有的浮点型ODE输入\输出数据,可能引起各种无法想象的错误。

   注意:当你使用ODE的dWorldStep函数时,对重物的仿真将会用栈(stack)去存储大量的临时数据,对于大一点的系统,有可能会用到好几MB大的栈。所以,如果你遇到未经说明的“内存不足”或“数据损坏”错误——尤其是在Windows平台上,那么你需要增加栈的容量或者使用dWorldQuickStep函数代替dWorldStep来避免这种错误的出现。

抱歉!评论已关闭.