ODE
古-月
怕什么真理无穷,进一寸有一寸的欢喜
展开
-
ODE的buggy例程分析
ODE (Open Dynamic Engine) 是一个免费的具有工业品质的刚体动力学的库,一款优秀的开源物理引擎。它能很好地仿真现实环境中的可移动物体,而且它有内建的碰撞检测系统。 最近从网上看到了ODE,不禁有一种跃跃欲试的冲动,于是这两天就小试了一下。虽然ODE这个库已经使用了十几年了,但是资料还是比较少,中文的更是寥寥可数,只有几篇官网教程的翻译,也只有前几章的,不是很原创 2013-04-03 16:57:08 · 3073 阅读 · 2 评论 -
ODE手册(0)概述
简介 ODE(Open Dynamic Engine)开源动力学引擎-是一款用于模拟“铰接式刚体”(个人理解:以关节链接的刚体)动力学的工业级质量程序库,内建有碰撞检测模块,可以被任何人免费使用。已经有很多基于ODE的程序可以证明,它可以完美地用于模拟地面车辆、有腿生物和VR(Virtual Reality:虚拟现实)环境中的移动对象。跟很多其它开源程序一样,它有着它们共同的优点:快速、转载 2013-04-04 15:20:08 · 1992 阅读 · 0 评论 -
ODE手册(1)安装和使用
说明:本手册翻译自ODE官方Manual(一)安装 1.获取源代码 ODE目前只以源代码的形式发布,没有可以直接使用的预编译二进制安装包。因为可以通过很多种不用的方法,使用源码包为各种不同的特定项目进行相应的定制编译。正是基于这种考虑,曾近试图为Linux平台发行的二进制版本也就搁浅了。 直接下载稳定版 (*.tar.bz2---由SourceForg转载 2013-04-04 15:21:26 · 4074 阅读 · 0 评论 -
ODE手册(5)刚体函数
这一部分主要是介绍一些在ODE中,跟刚体相关的函数5.1 刚体的创建和销毁dBodyID dBodyCreate (dWorldID); 在一个指定的world的原点(0,0,0)处创建一个质量参数默认的刚体,并且返回其ID(dBodyID)。void dBodyDestroy (dBodyID); 销毁一个指定的刚体,同时与其相连接的所有关节都会被遣送转载 2013-04-04 15:25:16 · 2488 阅读 · 0 评论 -
ODE手册(2)基本概念
2.1 背景介绍 我会在这里陆续写一些关于刚体动力学和机器仿真的背景知识。但是在此期间,请参看Baraff's的SIGGRAPH(Special Interest Group on Computer Graphics:美国计算机协会绘图专业组)指南。 刚体:从计算机仿真的角度来看,一个刚体包含若干个属性,其中一些属性会随着时间的改变而发生改变:刚体的位置:用向量(x,y转载 2013-04-04 15:22:32 · 2229 阅读 · 0 评论 -
ODE手册(3)数据类型和惯例
3.1 基本数据类型 ODE库可以被编译为使用单精度或双精度浮点数据类型。使用单精度时,模拟在占用较小内存空间的同时会取得较快的速度,但是会引起更多的数值型误差而且会引起可见的错误。另一方面,在使用单精度时会降低模拟的精确度和稳定性(必须说明哪些因素会影响到模拟的精确度和稳定性)。浮点型数据类型有dReal和其它一些常用的类型dVector3、dMatrix3、dQuaternion。矢转载 2013-04-04 15:23:41 · 1677 阅读 · 0 评论 -
ODE手册(4)World
4.1 常用函数 在ODE中,world对象是一个用来容纳刚体和关节的容器,处于不用world中的对象之间不能进行交互。例如:在两个不同world中的刚体就不可能发生碰撞。在同一个world中的所有对象都处于同一个时间点上,因此使用多个独立world的一个理由就是用来模拟不同等级的系统。但是大多数的应用都只需要一个world。dWorldID dWorldCreate();转载 2013-04-04 15:24:19 · 2021 阅读 · 0 评论 -
ODE手册(6)关节类型和相关函数
6.1 关节的创建和销毁dJointID dJointCreateBall (dWorldID, dJointGroupID);dJointID dJointCreateHinge (dWorldID, dJointGroupID);dJointID dJointCreateSlider (dWorldID, dJointGroupID);dJointID dJoi转载 2013-04-04 15:27:29 · 6927 阅读 · 1 评论 -
ODE调用OpenGL绘制图形的正反面
ODE自带的图形接口是对OpoenGL的封装,今天在绘图的时候发现有些图形在一侧可以看到,在另一侧就看不到了,开始还以为是自己程序的问题,后来上网查找了之后才发现是OpenGL对图形的渲染是分正反面的。 一般正反面是根据绘图的顶点顺序确定的,默认是逆时针绘图为正面,也可以通过设置确定: glFrontFace(GL_CCW); /原创 2013-04-11 22:26:50 · 2446 阅读 · 0 评论