原创帖子, 转载请注明出处,作者信息.
这个是自己分析bullet的代码过程中的笔记,比较简陋, 希望抛砖引玉, 欢迎板砖
作者: 马良 (www.iphonephysics.com ) (此blog需Over GW)
- 前提假设
计算机图形学中的物理模拟实际上只是追求视觉近似,而并非精确的物理模拟
同时物理引擎从简化计算考虑, 不与渲染引擎共享对象数据采用独立的一套数据. - 1 架构分析
物理模拟的基础是建立在一些核心几何结构之上.
核心的几何概念有
- 形状 (shape) : shape 抽象出了几何形状的特征, 比如长方体, 球, 四面体,凸包. bullet中的形状类型非常丰富有几十种之多. 由于几何形状的特征是和具体对象无关的,所以一种形状只要维持一个实例即可, 所有映射到该shape的对象可以共享这个实例.
- 包围体层次(BVH) 这个的概念可以在书中查找,一般有AABB, OBB, K-Dop, Convex Hull. Bullet 中采用的是AABB
- 空间划分数据机构节点 bullet 采用AABB
- 空间划分数据结构(通常是树) Bullet 中采用的主要是Dynamic AABB Tree (刚体 , 值得注意的是这