摘要: 在最近几个新的版本中,Bullet 物理引擎逐步加入并完善了软体形变的仿真。btSoftBody 类用于软体的模拟,仿真场景则通过 btSoftRigidDynamicsWorld 搭建。下面简单介绍一下 Soft Body Physics Pipeline 。 0、Overview 软体仿真的场景 阅读全文
posted @ 2020-05-04 13:29 wghou09 阅读(899) 评论(0) 推荐(0) 编辑
摘要: 在 Bullet User Manual 第3章 Library Overview 中,介绍了 Bullet Physics 的 pipeline,如下图所示: 这部分工作,都包含在了函数 btDiscreteDynamicsWorld::stepSimulation(...) 中。下面结合具体代码 阅读全文
posted @ 2020-05-03 18:17 wghou09 阅读(884) 评论(0) 推荐(0) 编辑
摘要: 在 Bullet 物理引擎的碰撞检测中,两物体之间的碰撞结果由 btPersistentManifold 存放。其中,两物体之间最多可以有4个(0~4个)碰撞/接触点,接触点为 btManifoldPoint 类。 在碰撞检测结果中,形成了那些信息?不同的碰撞检测算法,都涉及到什么样的信息?等等,这 阅读全文
posted @ 2020-05-03 09:29 wghou09 阅读(428) 评论(0) 推荐(0) 编辑
摘要: Bullet 物理引擎能够实现多种方式的碰撞检测。其中,对场景中的所有物体进行碰撞检测,是其主要的功能之一。以下将逐步分析一下,该碰撞检测流程 1、碰撞检测主要步骤 在 btCollisionWorld 类中,首先向场景中添加碰撞对象,存入 m_collisionObjects 中,同时向 btCo 阅读全文
posted @ 2020-05-02 23:44 wghou09 阅读(1155) 评论(2) 推荐(1) 编辑
摘要: 对于 Bullet 物理引擎中的碰撞检测部分,并不太关心它的实现细节,更想知道的是物体的存储方式/数据存放、碰撞结果在哪儿,大致的步骤等 1、碰撞场景类 btCollisionWorld 的结构 btCollisionWorld 是 Bullet 物理引擎中的碰撞场景类,并由此派生出了 btDyna 阅读全文
posted @ 2020-05-02 19:23 wghou09 阅读(1129) 评论(0) 推荐(1) 编辑
摘要: Bullet User Manual 第三部分,参见 bullet3/docs/Bullet_User_Manual.pdf 总体上绍了 Bullet 物理引擎的整体架构、仿真流程、基础数据结构等。 Bullet 物理引擎的主要功能为 碰撞检测、碰撞/约束求解、物体状态的更新。 The main t 阅读全文
posted @ 2020-05-01 16:50 wghou09 阅读(674) 评论(0) 推荐(0) 编辑
摘要: Bullet User Manual 第一部分,参见 bullet3/docs/Bullet_User_Manual.pdf 总体上概述了 Bullet 物理引擎的功能及特征。 Bullet 物理引擎主要用于游戏、视觉效果仿真、机器人仿真等。 The library is primarily des 阅读全文
posted @ 2020-05-01 16:45 wghou09 阅读(431) 评论(0) 推荐(0) 编辑
摘要: Bullet 物理引擎的作者给出了一份简单的用户学习手册,参见bullet3/docs/Bullet_User_Manual.pdf 手册中介绍了总体功能框架及实现思路,主要有以下几个部分。后续随笔中,将逐个部分结合代码做进一步的分析。 借助 Bullet 物理引擎,希望实现的功能是软体机器人仿真。 阅读全文
posted @ 2020-05-01 15:29 wghou09 阅读(587) 评论(0) 推荐(0) 编辑
摘要: 先初步看一下碰撞相关的对象都有些什么。 (小疑惑,为什么对在 btDiscreteDynamicsWorld 外面单独有一个 CollisionShape,好像是说,CollisionShape 是包含在 CollisionObject 里面的。难道是为了节省内存,对于不同的 CollisionOb 阅读全文
posted @ 2020-05-01 00:31 wghou09 阅读(1084) 评论(0) 推荐(0) 编辑
摘要: 代码参见:bullet3/examples/BasicDemo 在 Bullet 自带的例程中,仿真主要包括以下三步: (1)example->initPhysics(); 首先,初始化仿真相关的环境。建立仿真相关对象,添加场景中的物体,等等。 (2)example->stepSimulation( 阅读全文
posted @ 2020-04-30 23:42 wghou09 阅读(644) 评论(0) 推荐(0) 编辑