使用Physx物理引擎模拟流程的整合优化方法及装置与流程

文档序号:15461571发布日期:2018-09-18 18:17阅读:1115来源:国知局
本发明属于虚拟游戏
技术领域
,尤其是涉及一种使用Physx物理引擎模拟流程的整合优化方法。
背景技术
:物理引擎主要包含游戏世界中的物体之间、物体和场景之间发生碰撞后的力学模拟,以及发生碰撞后的物体骨骼运动的力学模拟。近年来,随着硬件的发展,物理引擎广泛应用于游戏行业。世界三大物理引擎分别是Physx、Havok、Bullet,其中Physx物理引擎是Nvidia公司的一款开源物理引擎,性能优越,模拟效果稳定,尤其在Nvidia的显卡上模拟效率极高。Physx物理引擎包含刚体、关节、vehilce小车、布料、破碎等物理功能,这些功能极大的丰富了游戏的开发内容,提升游戏的效果表现。Physx物理引擎拥有固定的模拟流程:1、送入模拟数据2、开始模拟3、结束模拟4、获取模拟结果游戏引擎的模拟一般分为两部分,一部分是更新游戏数据,一部分是渲染游戏。物理引擎的模拟,需要用到游戏引擎更新后的数据,而游戏引擎的渲染需要用到物理引擎的模拟数据。Physx物理引擎在模拟过程中,可以指定多线程模拟数量,利用多线程提高模拟效率。如何将Physx物理引擎的模拟整合到游戏引擎,是Physx物理引擎模拟效率的关键。技术实现要素:本发明要解决的技术问题是,提供一种使用Physx物理引擎模拟流程的整合优化方法,采用新的整合Physx物理引擎模拟流程的方式,在保证Physx物理引擎模拟结果正常的情况下提高Physx物理引擎的模拟效率。为解决上述技术问题,本发明采用的技术方案是:该使用Physx物理引擎模拟流程的整合优化方法,包括以下步骤:(1)在游戏更新结束后,结束物理引擎模拟,保存模拟结果;(2)将游戏更新数据送入物理引擎,游戏引擎开始模拟;(3)游戏开始渲染并且将保存的物理模拟结果用于游戏渲染。采用上述技术方案,采用新的整合Physx物理引擎模拟流程的方式,在保证Physx物理引擎模拟结果正常的情况下提高Physx物理引擎的模拟效率。本发明进一步改进在于,所述步骤(2)还包括在物理开始模拟到物理结束模拟之间有一个游戏流程的时间用于物理引擎的多线程模拟。将在物理开始模拟到物理结束模拟之间有一个游戏流程(一帧)的时间用于物理引擎的多线程模拟,这种情况下,游戏更新和渲染的同时,物理引擎的多线程在正常运行,在多核CPU下,这种方式明显能提高模拟效率。本发明进一步改进在于,所述步骤(2)中的游戏引擎的模拟分为两部分,一部分是更新游戏数据,一部分是渲染游戏。本发明进一步改进在于,该使用Physx物理引擎模拟流程的整合优化方法是采用将游戏引擎和物理引擎模拟相结合的方式。本发明进一步改进在于,所述物理引擎模拟需要用到游戏引擎更新后的数据,而游戏引擎的渲染需要用到物理引擎的模拟数据。本发明进一步改进在于,所述物理引擎模拟可指定多线程模拟的数量。本发明要解决的另外一个技术问题是,提供一种使用Physx物理引擎模拟流程的游戏装置,该游戏装置包括有,数据存储单元,用于在游戏更新结束后,结束物理引擎模拟,保存模拟结果;数据传输单元,用于将所述数据存储单元中存储的游戏更新数据送至物理引擎;模拟单元,用于接收到游戏更新数据后,游戏引擎开始模拟;渲染单元,用于渲染并将保存的物理模拟结果用于游戏渲染。优选的,该游戏装置具有多核CPU。附图说明下面结合附图和本发明的实施方式进一步详细说明:图1是现有游戏引擎和物理引擎模拟结合方式示意图;图2是本发明使用Physx物理引擎模拟流程的整合优化方法的游戏引擎和物理引擎模拟结合方式示意图;图3是本发明使用Physx物理引擎模拟流程的游戏装置结构示意图。具体实施方式如图1所示,是现有的模拟方式;按图1所示的模拟方式,游戏更新结束后,将数据传给物理引擎,然后物理引擎马上开始模拟,而后等待物理引擎结束模拟,获取物理引擎模拟结果,送入游戏引擎,进而渲染。这种模拟方式的模拟结果正常,实时性很高,但效率很低。物理引擎从开始模拟到结束模拟之间没有等待时间,导致其多线程根本没有发挥应有的作用。而且游戏渲染还要强制等待物理引擎模拟结束,游戏渲染、更新和物理引擎的多线程运行没有并发执行,导致物理渲染成为整个游戏的瓶颈,如果物理引擎模拟实体数目庞大,将严重降低游戏帧率。图3所示的,是本发明实施例中的使用Physx物理引擎模拟流程的游戏装置,包括有:数据存储单元,用于在游戏更新结束后,结束物理引擎模拟,保存模拟结果;数据传输单元,用于将所述数据存储单元中存储的游戏更新数据送至物理引擎;模拟单元,用于接收到游戏更新数据后,游戏引擎开始模拟;渲染单元,用于渲染并将保存的物理模拟结果用于游戏渲染。上述游戏装置具有多核CPU。在本实施例中,使用Physx物理引擎模拟流程的整合优化方法,如图2所示,包括以下步骤:(1)在游戏更新结束后,结束物理引擎模拟,保存模拟结果;(2)将游戏更新数据送入物理引擎,游戏引擎开始模拟;(3)游戏开始渲染并且将保存的物理模拟结果用于游戏渲染;所述步骤(2)还包括在物理开始模拟到物理结束模拟之间有一个游戏流程的时间用于物理引擎的多线程模拟;所述步骤(2)中的游戏引擎的模拟分为两部分,一部分是更新游戏数据,一部分是渲染游戏;该使用Physx物理引擎模拟流程的整合优化方法是采用将游戏引擎和物理引擎模拟相结合的方式;所述物理引擎模拟需要用到游戏引擎更新后的数据,而游戏引擎的渲染需要用到物理引擎的模拟数据;所述物理引擎模拟可指定多线程模拟的数量。这种方式的优势是,在物理开始模拟到物理结束模拟之间有一个游戏流程(一帧)的时间用于物理引擎的多线程模拟。这种情况下,游戏更新和渲染的同时,物理引擎的多线程在正常运行,在多核CPU下,这种方式明显能提高模拟效率。以下是空场景下不同数量的物理布料在优化前后的测试结果:空场景0套布料1套布料5套布料50套布料优化前570帧495帧360帧42帧优化后570帧505帧375帧90帧从测试结果可以看出,本发明提供的模拟方式对提高物理引擎的整合模拟效率有很大的作用。上面结合附图对本发明的实施方式作了详细的说明,但是本发明不限于上述实施方式,在所属
技术领域
普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1