欢迎来到天天文库
浏览记录
ID:36583276
大小:5.72 MB
页数:17页
时间:2019-05-12
《物理引擎与图形引擎介绍》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、物理引擎和图形引擎介绍2015-21引言[1][2]物理引擎是一个仿真物理系统的软件,它使虚拟世界中的物体运动符合真实世界的物理定律,对虚拟现实中的物体进行运动学、动力学、其它物理学仿真等。在虚拟现实系统开发中,开发人员可以使用物理引擎与渲染引擎相结合的方法,不但可以缩短开发周期,而且可以产生良好的效果。随着虚拟现实技术的发展,物理引擎已广泛应用在游戏、动画、电影、工程仿真和军事模拟等诸多领域。在以往的游戏中,例如一位士兵往一个油桶旁边扔一个手雷,手雷爆炸,引起了油桶的爆炸。不过这个过程显得相当死板,不管是把手雷丢在油桶的左边还是右边,油桶都只会按照设计者预先设计好的脚本
2、方式爆炸,不会有区别。加入物理引擎后,它完全突破了以往按预定脚本执行的方式,在游戏中的物体都遵守物理定律来运行,这样手雷扔在油桶的左边或右边都会产生不同的爆炸效果,石块会朝不同的角度飞溅起来,烟雾也会慢慢冒起来,使游戏更加富有真实感。通常物理引擎可以分成两类:高精度物理引擎和实时物理引擎。高精度物理引擎要求计算出精度很高的物理对象,通常用于工程仿真或用电脑制作电影中的动画。在视频游戏中,物理引擎通过简化其运算复杂度,降低其精度来满足游戏中对实时性的需求,以增加动画的真实感。物理引擎使用对象属性(速度、加速度、动量、冲量、碰撞、力、力矩、阻尼、扭矩或弹性等)来模拟刚体的运动
3、、旋转和碰撞等行为,这不仅可以得到更加真实的结果,对于开发人员来说也比编写行为脚本要更加容易掌握。好的物理引擎允许模拟复杂的机械装置,像球形关节、轮子、气缸或者铰链等。有些还支持非刚性体的物理属性,如软体、流体等。物理引擎只关心动力学微分方程的求解,而为了获得逼真的仿真环境,还需要图形引擎的配合。输入场景信息(包括物体的形状、物理参数和位置等),通过物理引擎计算出场景中所有物体的形状和位置,再由图形引擎渲染它们,最终将它们显示在计算机上。目前常用的物理引擎有Havok、PhysX、Bullet、ODE、Newton、Vortex和TOKAMAK等,常用的图形引擎有OGRE
4、、OSG、OpenGVS和Vtree等。本文将介绍物理引擎Havok、PhysX、Bullet、ODE和图形引擎OGRE、OSG的背景、功能、用法及其在工程仿真领域中的应用,以及物理引擎和图形引擎联合应用的方法。171物理引擎1.1Havok[1][3]Havok公司成立于1998年,总部位于爱尔兰首都都柏林。该公司在2000年游戏开发者大会上发布了Havok1.0,在2003年的GDC上发布了2.0版本,在2007年3月发布4.5版本,最新版本为5.5。引擎基于C/C++语言而成。2007年9月,Intel宣布收购Havok之后不久,Intel宣布Havok引擎开放源代
5、码并允许游戏开发人员免费使用。 自从Havok引擎发布以来,它已经被应用到数百个游戏之中。最早,使用Havok引擎的游戏大多数都是第一人称射击类别,但随着游戏开发的复杂度与规模越来越大,其他类型的游戏也想要有更加真实的物理表现,有越来越多的其他类型的游戏采用Havok引擎。应用Havok的著名游戏有:《暗黑破坏神III》、《星际争霸II》、《半条命2》、《刺客信条:兄弟会》、《马克思·佩恩2》、《凯恩与林奇:死人》、《凯恩与林奇2:伏天》、《荣誉勋章:太平洋突袭》、《斩除妖魔》、《帝国时代III》、《极度恐慌》、《细胞分裂:混沌法则》、《光环2》、《光环3》、《大乱斗Sm
6、ashBrothersX》以及《上古卷轴IV:湮没》等。 使用Havok的软件有3DMark06、3DMarkVantage、3dsMax、AdobeAtmosphere和AdobeShockwave等。Havok具有以下主要功能:●碰撞检测(包括连续的物理体)●MOPP技术(大碰撞网格的简洁表达)●动力学和约束的求解●车辆动力学●数据序列和布景工具支持●内置诊断反馈虚拟调试器Havok注重在仿真和游戏中对现实世界物理行为的模拟,提供了大量的应用程序编程接口(API),用于刚体建模、碰撞检测和实时动力学计算等。利用该引擎,可快速建立虚拟三维物理世界,以及物理世界中的物理实
7、体,并向物理实体添加物理属性,完成仿真系统的实时计算,并检测计算结果。“帧”是仿真系统中的单幅画面,两个连续帧之间的时间间隔称为帧时间。Havok物理引擎的工作流程就是在上一帧渲染完毕之后,以及下一帧渲染开始之前的帧时间内,将外部设备的输入信号转化为物理世界中具有物理属性的实体的受力,根据实体间的约束信息,进行碰撞检测以及活动实体的受力分析,求出加速度和角加速度等,最后对时间进行积分求出实体在下一帧中的位置和姿态。求解完毕之后交付图形引擎渲染,并进入下一个计算过程。对于交互式仿真系统,物理引擎还要有接收外部设备的输入信号并转化
此文档下载收益归作者所有