谈到物理引擎,我们先来介绍一下什么是游戏引擎:我们可以把游戏的引擎比作赛车的引擎,大家知道,引擎是赛车的心脏,决定着赛车的性能和稳定性,赛车的速度、操纵感这些直接与车手相关的指标都是建立在引擎的基础上的。
游戏也是如此,玩家所体验到的剧情、关卡、美工、音乐、操作等内容都是由游戏的引擎直接控制的,它扮演着中场发动机的角色,把游戏中的所有元素捆绑在一起,在后台指挥它们同时、有序地工作。简单地说,引擎就是“用于控制所有游戏功能的主程序,从计算物体的相对位置,到接受玩家的输入,以及按照正确的音量输出声音等等。”
经过不断的进化,如今的游戏引擎已经发展为一套由多个子系统共同构成的复杂系统,从建模、动画到光影、粒子特效、文件管理、网络特性,还有专业的编辑工具和插件,几乎涵盖了开发过程中的所有重要环节。
『游戏开发需要基于一个完善的引擎』
而在游戏的引擎中,图形渲染是引擎最重要的功能之一,当3D模型制作完毕之后,美工会按照不同的面把材质贴图赋予模型,这相当于为骨骼蒙上皮肤,最后再通过渲染引擎把模型、动画、光影、特效等所有效果实时计算出来并展示在屏幕上。渲染引擎在引擎的所有部件当中是最复杂的,它的强大与否直接决定着最终输出的画面质量。
『目前最为知名的一款游戏引擎:虚幻3引擎』
引擎相当于游戏的框架,框架打好后,关卡设计师、建模师、动画师只要往里填充内容就可以了。因此,在3D游戏的开发过程中,引擎的制作往往会占用非常多的时间,《马科斯·佩恩》的MAX-FX引擎从最初的雏形Final Reality到最终的成品共花了四年多时间,LithTech引擎的开发共花了整整五年时间,耗资700万美元。正是出于节约成本、缩短周期和降低风险这三方面的考虑,越来越多的开发者倾向于使用第三方的现成引擎制作自己的游戏。
而物理引擎和3D图形引擎是两个截然不同的引擎,但是它们两者又有着密不可分的联系,一起创造了虚拟现实的世界。在虚拟现实世界中,人们的需求已经从观看离线渲染的3D动画片的方式过渡到了使用实时渲染技术的交互浏览方式,这一步的迈进主要归功于3D图形引擎的发展。然而,只有图形引擎的VR模拟只是一些三角形面片的涂色显示而已,虚拟世界中的物体只具有一个外表,没有内在的实体,就像一堆幽灵彼此之间无法相互作用,用户更不能和他们产生具有逼真的动作交互。
因此碰撞探测是物理系统的核心部分,它可以探测游戏中各物体的物理边缘。当两个3D物体撞在一起的时候,这种技术可以防止它们相互穿过,这就确保了当你撞在墙上的时候,不会穿墙而过,也不会把墙撞倒,因为碰撞探测会根据你和墙之间的特性确定两者的位置和相互的作用关系。当然,这是物理引擎的最基本功能,也是目前大多数游戏可以涵盖到物理引擎效果。
『高技术的PhysX引擎能在游戏中实现更为复杂的物理效果』
略微高级一些的物理引擎则可以提供更强大的物理系统,这可以使物体的运动遵循固定的规律,例如,当角色跳起的时候,系统内定的重力值将决定他能跳多高,以及他下落的速度有多快,子弹的飞行轨迹、车辆的颠簸方式也都是由物理系统决定的。
综上所述,物理引擎简单的说就是计算3D场景中,物体与场景之间,物体与角色之间、物体与物体之间的运动交互和动力学特性。在物理引擎的支持下,场景中的模型有了实体,一个物体可以具有质量、可以受到重力、可以落在地面上、可以和别的物体发生碰撞、可以反应用户施加的推力、可以因为压力而变形、可以有液体在表面上流动……
现在的游戏都多少包含基本的物理引擎元素,但是高级的物理引擎技术则掌握在极少数的几家公司手中,PhysX物理引擎就是其中之一。