首页 > 其他 > 详细

Bullet 学习笔记之 btDefaultSoftBodySolver

时间:2020-05-04 19:39:53      阅读:71      评论:0      收藏:0      [点我收藏+]

btSoftBodySolver 是 Bullet 物理引擎中关于软体形变仿真的又一个关键类。btSoftBodySolver 提供了关于软体形变仿真求解的一些接口。目前,在 Bullet 物理引擎中,派生出的只有 btDefaultSoftBodySolver 类。

下面来看一下,btDefaultSoftBodySolver 里面都有什么,实现了什么样的功能。


1、btDefaultSoftBodySolver 类的总体情况

btDefaultSoftBodySolver 类中,其成员变量也十分简单,仅仅是在 btDefaultSoftBodySolver.m_softBodySet 中存储了所涉及到的软体对象。

成员函数也很简单,有如下:

virtual bool checkInitialized();

virtual void updateSoftBodies();

virtual void optimize(btAlignedObjectArray<btSoftBody *> &softBodies, bool forceUpdate = false);

virtual void copyBackToSoftBodies(bool bMove = true);

virtual void solveConstraints(btScalar solverdt);

virtual void predictMotion(btScalar solverdt);

virtual void copySoftBodyToVertexBuffer(const btSoftBody *const softBody, btVertexBufferDescriptor *vertexBuffer);

virtual void processCollision(btSoftBody *, const btCollisionObjectWrapper *);

virtual void processCollision(btSoftBody *, btSoftBody *);

主要涉及软体的状体更新、约束求解、碰撞检测等。


2、场景优化函数 btDefaultSoftBodySolver::optimize(..)

哈,就一句话

m_softBodySet.copyFromArray(softBodies);

把涉及到的软体,拷贝(指针)到 m_softBodySet 中。


3、位移计算函数 btDefaultSoftBodySolver::predictMotion(t)

Bullet 学习笔记之 btDefaultSoftBodySolver

原文:https://www.cnblogs.com/wghou09/p/12827798.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!