基于OSG和Bullet的船舶碰撞响应三维仿真

基于OSG和Bullet的船舶碰撞响应三维仿真摘要:针对目前在航海模拟器中缺少对船舶碰撞响应的三维仿真,提出在航海模拟器中基于开源场景图形(OpenSceneGraph,OSG)渲染引擎开发的三维视景中加入Bullet物理引擎的技术方案.根据刚体动力学、接触与碰撞动力学和能量守恒定律,基于Bullet刚体碰撞响应模型,建立船舶三维碰撞动力学模型;运用ProjectedGaussSeidel迭代算法,得到碰撞后船舶实时的六自由度位置姿态参数;根据碰撞检测阶段获取的碰撞点位置参数,实时绘制划痕并添加爆炸特效.该方案已成功应用于航海模拟器视景系统中,渲染效果良好.关键词:航海模拟器;三维视景系统;碰撞响应;开源场景图形(OSG);Bullet物理引擎:U666.158文献标志码:A0引言随着国际航运业和现代造船技术的不断发展,船舶大型化、高速化趋势明显,通航密度也越来越大,通航安全问题备受瞩目.为提高海上航行安全,降低海事事故发生率,通常运用航海模拟器对船员进行培训和评估.国际海事组织发布的《STCW公约》马尼拉修正案对航海模拟器提出更高的设备要求,完善航海模拟器的功能迫在眉睫.碰撞检测和碰撞响应是航海模拟器的关键技术之一,目前的模拟系统对碰撞后的船舶往往只做简单的停船处理,碰撞响应视景真实感欠缺.若能有效解决船舶碰撞响应的真实感问题,则可进一步完善航海模拟器的性能,提高船员应急情况下的模拟操纵能力.针对该问题,笔者提出将开源场景图形(OpenSceneGraph,OSG)三维渲染引擎与Bullet物理引擎结合的技术方案,研究三维碰撞响应算法,最终将该方案成功应用于航海模拟器的视景系统中.1技术支持1.1OSGOSG扩展功能突出,跨平台性和可移植性好,且具备良好的场景管理和图形渲染优化功能,能实时高效绘制并控制三维模型,支持多类型外接设备.目前,国内多数航海模拟器的三维视景系统是基于OSG开发的.1.2Bullet物理引擎通过为刚性或柔性物体赋予真实物理属性的方式,计算物体的运动、旋转和碰撞反应.世界三大物理引擎分别为Havok,PhysX和Bullet,其中Bullet是一个开源的、易扩展的动力学类库,可有效解决虚拟环境中可移动物体的碰撞问题,且运算快速稳定.Bullet可作为一个碰撞检测库单独使用,开发者可根据需求自行设计仿真过程.1.3OSG与Bullet的结合1.3.1OSG与Bullet结合的可能性OSG和Bullet均使用四元数和三维向量表示物体的方位,用三角网格表示不规则几何体,并根据时间帧循环运行,这为Bullet与OSG的结合提供可能.OSG主要用于管理场景结构并渲染三维视景,其碰撞检测功能具有一定的局限性,无法满足用户的精确碰撞检测要求;Bullet赋予模型物理属性,提供多种碰撞检测方法,并根据动力学原理作出碰撞响应.将OSG与Bullet结合,可弥补二者自身存在的不足,提高三维虚拟场景的真实感,符合物理世界的规律.1.3.2OSG与Bullet结合的过程OSG与Bullet结合的过程:①初始化物理世界,即对碰撞配置对象(btDefaultCollisionConfiguration)、碰撞调度器对象(btCollisionDispatcher)、解算器(btConstraintSolver)、碰撞粗测阶段(BroadPhase)、动态世界(btDynamicsWorld)进行初始化;②定义碰撞检测,为进行碰撞检测的物体构建合适的碰撞几何体(btCollisionShape);③创建虚拟场景,设置物理世界中各物体的初始速度、位置、质量、摩擦力等物理参数;④设置回调,包括设置作用力和空间位置的回调,获取物理计算结果;⑤物理更新,根据回调获取的物体的位置姿态等参数,实时更新物体的空间位置.4.2碰撞划痕特效模拟根据碰撞检测阶段获取的碰撞接触点的位置参数,将碰撞接触点依次连接,可实时绘制船舶碰撞的划痕,即:从连续碰撞的第2个碰撞接触点p2开始绘制划痕;将当前获取的碰撞接触点pi与前一个碰撞接触点pi-1相连,形成线段pi-1pi;每产生一个新的碰撞接触点,便绘制一条线段,直到下一次碰撞检测无碰撞接触点时停止本条划痕的绘制.若某时刻又产生新的碰撞接触点,则开始一条新划痕的绘制.碰撞划痕特效见图6(a).每条划痕实际上是连接一次连续碰撞过程中的所有碰撞接触点p1,p2,…,pi-1,pi,…,pn的折线段.为使折线段更加光滑,可适当提高碰撞检测的频率.4.3碰撞爆炸...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?