实时物理模拟

来源:互联网 发布:php excel多级下拉版 编辑:程序博客网 时间:2024/05/18 09:04

物理模拟入门的大致方向。大致有
1、刚体(RigidBody)的模拟,学习的书籍有多刚体动力学,建议看国外的书籍,国内书籍看了后距离代码仍还有相当大距离,开源的项目有Bullet等。也可参看以下面的代码。
2、柔体
(1)小变形,使用有限元(FEM:Finite Element Methods)工程上常用。机械、土木类的就很熟悉了。
(2)较小变形,使用改进的有限元或共旋法(CoRotation)。
(3)再大点的变形,使用无网格法(Meshless),哪个SPH就是这种方法。比如模拟子弹击中钢板后分裂的模拟就使用此方法,还有人用来模拟溃坝。
3、一些热点
(1)流体水面、烟雾、布料、线等。此方面的文章太多,代码也多。
(2)模型降维(Model Reduction)。对数学要求较高,学习前需要补充的东西太多。
4、学习书籍
(1)Physics for Game Developer:很早的书籍,一般,不值得推荐,
(2)Game Physics Engine Development:很一般(有中文版),不值得推荐,因为看完后还是不知道原理,代码较乱,看起来费劲。
(3)Real-Time Collision Detection:实时碰撞检测必读(有中文版),可以参考,其中的碰撞检测部分有伪代码,便于开发。
(4)Game Physics Pearls:有些章节是作者工作中解决的问题,很有参考价值。可以选择性参看。
(5)Game Physics(1/2版):很具有参考价值,刚体碰撞中使用了LCP(线性互补,更具体的说,求解LCP的算法是Lemke)。书籍讲解的内容提供了源码(当然用DirectX来渲染)。GPU GEM3也使用此算法(但未做比较),作者是双料博士,现就职于微软,写了多本书。很NB。
(6)Learning Physics Modeling with PhysX:内容太少,只有近200页。
(7)Learning_Game_Physics_with_Bullet:内容太少,还不如看Bullet例子。

5、物理模拟的需求没有渲染大,工程上提出的物理模拟总能找到一些替代方法来“糊弄”用户,因此导致国内研究较欠缺,没有人研究,自然没有结果,更没有运用。