首页 > 编程知识 正文

真实物理引擎,就这?,物理引擎怎么开发

时间:2023-05-05 02:36:20 阅读:235139 作者:2420

虽然不是游戏或引擎开发方向,但最近空闲时看了一篇关于彩虹六号围攻破坏引擎的帖子,突然觉得自己玩了1000多小时的R6S也应该对了解下游戏开发方向的知识,在此记录,以后跟外行吹B也能讲讲(滑稽)。这里主要写了物理引擎,因为游戏引擎基本随便百度,帖子写得蛮详细的。

游戏开发中的程序开发包含:

图形引擎(场景管理及渲染、贴图、建模等)涉及到:Maya、3DS Max、PS等声音引擎 (音效Sound Effect、语言VOICE、BGM等)涉及到:采样率、DTS音效(数字影院系统)、杜比音效等物理引擎 (力学模拟)涉及到:HAVOK、PhysX、Bullet游戏引擎 (整合上面3类引擎,道具摆放、NPC设置等)涉及到:Unity 3D、UE、RE、Source、CryEngine等AI或游戏逻辑 欧美常用脚本语言(半条命),日本常以一些语言宏功能和编译器的特定功能完成简单脚本系统然后用于调试游戏GUI界面  涉及到:2D 或 3D GUI界面等游戏开发工具 涉及到:关卡编辑器、角色编辑器、资源打包器、DCC的插件工具等多人网络引擎 涉及到:网络发包及延迟处理、同步异步通讯、单一C/S架构或C/SP2P混合架构等物理引擎

      关于什么是物理引擎就不在赘述,现今3大物理引擎:Inter的Havok、NVIDIA的PhysX和Bullet。

Havok

       HavoK全称是Havok Game Dynamics SDK包含Physics引擎、FX引擎(RealBlast)现已Inter雪藏、动作引擎、Behavior引擎、Cloth引擎、刚体破坏引擎(要减肥的发箍)、AI引擎。 被Inter收购后利用挤牙膏挤出来的CPU多线程技术,使其仅仅依靠CPU就能带来良好的物理效果。

       醉熏的信封旗下R6、远哭2都用到了Havok物理引擎,以R6S为例,在Havok FX的加持下,R6S场景破坏时的物理真实的碎片(带碰撞,可以和环境有基本互动)数量远远超过同类游戏。R6S是使用的破坏系统是醉熏的信封自己搞的RealBlast引擎,Real会将破坏对象、破坏程度、生成的碎片、初速的信息计算好,然Gameplay再做出相应反应。后就是。常见的破坏效果是:预先把物品切碎,然后在游戏中通过物理引擎的数据触发破坏效果,然后把原先的Collisions替换掉,放上准备好的碎片。这种物体一旦被破坏,所有的碎片都是被GamePlay系统忽略的,是纯粹的视觉效果。这样烂大街的解决办法其实在花点钱Havok可以让你一个打十个。

       但是,R6S或者说RealBlast真正的创新是在一个多人线上PvP的游戏里使用了Procedural Destruction(程序破坏)。在R6S里你可以在众多的墙的任意位置开洞来创造新的视野,而要做到这点,上面所描述的那种方法是完全不可行的,需要根据破坏力实时计算所有墙体的破坏。其次,墙体的破坏会影响到很多GamePlay方面如射击、物理系统、人物移动、Al、Navmesh(自动寻路)等,都要根据破坏结果做出反应,这对CPU是巨大的消耗。另外,另一个困难的方面是如何在网络条件下正确同步所有初始条件,使得所有客户端都能有相同的破坏效果。同时,为了反作弊,需要把破坏引擎也放在服务器上执行,导致服务器的压力也很大,R6S的那些个健康Bug估计和这点有些关系吧。

        列举一些用到Havok引擎的游戏电影:战地3、星际争霸2、辐射3、远哭2、R6S、求生之路系列、正当防卫系列、xsdst、刺客信条2、生化奇兵系列、死亡空间、光晕3,生化危机5 。电影有:黑客帝国、特洛伊等。

PhysX

        Ageia时代的PhysX提供给UE3NovodeX物理模拟技术,一起作为黄金搭档,创造出了镜之边缘(显卡杀手)、阿卡姆疯人院等优秀的游戏。还曾推出PPU(物理加速卡)来专供P和PhysX引擎加速。

       当PhysX进入NVIDIA时代,NVIDIA借助CUDA架构的“翻译功能”将PhysX物理加速引擎从PPU移植到了GPU上。当支持游戏PhysX加速但显卡不支持(如AMD ATI和Inter集显)的情况下,CPU只能以单线程模式进行计算,并且是代码是使用老式的x87的浮点运算指令,也就是说即使是在单线程处理条件下,也应该有很大提升空间,也就说PhysX logo是支持Nvida显卡游戏的卖点,同时,也在告诉玩家,它在非NVIDIA硬件设备下跑得更慢。

        列举一些用到PhysX引擎的游戏,真正支持GPU计算 PhysX引擎:镜之边缘、蝙蝠侠 阿卡姆疯人院、AC黑旗、黑手党2、地铁2033、巫师3、使命召唤 幽灵等;支持CPU计算PhysX引擎:无主之地、质量效应、彩虹六号 维加斯系列等。

Bullet

        比起前两位,Bullet的名气貌似低了好多,但由Bullet制作的游戏和电影应该是无人不知。R星大名鼎鼎的GTA4、GTA5、荒野大镖客,电影2012、大侦探福尔摩斯的特效都是基于Bullet物理引擎。 

        Bullet是开源物理引擎,其源代码在GitHub上开源,Bullet支持Windows、Linux、MAC、PS、XBOX等,整合到了Maya和Blender 3D中,可模拟碰撞检测、柔体和刚体动力学。现与AMD进行合作,是AMD开放物理计划之一。

 

 

 

 

 

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。