在几年前还没有物理引擎时,在那种第一人称射击游戏(first-person shooting game,FPS)游戏中,一位士兵往一个油桶旁边扔一个手雷,手雷爆炸,引起了油桶的爆炸。不过这个过程显得相当死板,不管是把手雷丢在油桶的左边还是右边,油桶都只会按照预先设计的样子爆炸,不会有区别。如果有了物理引擎,手雷扔在油桶的左边或右边就会产生不同的爆炸效果,石块会朝不同的方向飞溅起来,烟雾也会慢慢冒起来……
物理引擎是一个仿真物理系统的软件,它使虚拟世界中的物体运动符合真实世界的物理定律,对VR中的物体进行运动学、动力学以及其他物理学仿真等。随着VR技术的发展,物理引擎已广泛应用于游戏、动画、电影、工程仿真和军事模拟等诸多领域。
通常物理引擎可以分为两类:高精度物理引擎和实时物理引擎。高精度物理引擎要求计算出精度很高的物理对象,通常用于工程仿真或用电脑制作电影动画。在视频游戏中,物理引擎通过简化其运算复杂度,降低其精度满足游戏中对实时性的要求,以增加动画的真实感。
物理引擎使用对象属性(速度、加速度、动量、冲量、力、力矩、阻尼、弹性等)模拟刚体的运动、旋转和碰撞行为,这样不仅可以得到更加真实的结果,对于开发人员来说也比编写行为脚本更容易掌握。好的物理引擎允许模拟复杂的机械装置,如球形关节、气缸、车轮、履带或者铰链等;有些还支持非刚性体的物理属性,如软体、流体等。(www.xing528.com)
物理引擎只关心动力学微分方程的求解,而为了获得逼真的仿真环境,还需要图形引擎的配合。输入场景信息(包括物体的形状、物理参数和位置等),通过物理引擎计算出场景中所有物体的形状和位置,再由图形引擎进行渲染,最终将它们显示在计算机上。
目前,常用的物理引擎有PhysX、Havok和Bullet等,本节重点介绍PhysX物理引擎的背景、功能、用法及其在工程仿真领域中的应用。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。