物理引擎是怎样写出来的?具体怎样工作?

 我来答
匿名用户
2013-07-13
展开全部
在游戏中,特别是在3D游戏中,真实性往往是需要高标准的硬件设施才能达到的。在3D技术发展早期,图形芯片只能完成常规的渲染操作,而关键的建模和光照运算必须以软件模拟的方式由CPU来完成,而NVIDIA在1999年8月推出的一款具有革命意义的GeForce256芯片,它具有硬件T&L引擎,可独自完成建模和光照运算,大大降低了CPU的负担,显卡的3D效能也获得了突飞猛进的提升!不过,尽管GPU的出现让CPU负担减轻,但除了工艺水平改进,频率提升,管线堆叠之外,没有真正实质性的变革,CPU仍需负责图形相关的物理运算工作,依然采用沉闷的游戏渲染方式。正是在这种形势下,一些公司提出物理加速的概念,让我们看到一丝黎明前的曙光……  物理加速,顾名思义,专门进行模拟物理计算的处理运算,它是一个全新的硬件类别,它是用于沟通虚拟电子世界和普遍存在的物理真实,比如在游戏中,当你正驾驶坦克在不断获得一次次胜利,争取更大战果的时候,你却被前面的一片灌木丛挡住了去路,这在真实世界,会有问题吗?也许这样的问题一提出,就会惹来一片嘘声:这还是游戏?物理加速技术就是要改变这一现状。  众所周知,目前每款重要的游戏大作后面都离不开最新显卡技术的跟进、支持。nVIDIA在推出GeForce之时首先提出了显卡首先提出了GPU的概念,GPU主要是分担部分CPU的处理工作,有效减低了CPU的负担,并可提供更好的视觉效果及品质。但有趣的是,随着图形内容的迅速膨胀,CPU在一些协调管理准备工作以及其他任务的需求也迅速增加,特别物理交互环境深度和质量的增长,将会带来人工智能,游戏逻辑以及渲染的膨胀,GPU此时已经显得有所力不从心。这是因为GPU在处理各种图形计算的同时还要负责去运算这些物理变化,而GPU的运算性能在受到物理处理瓶颈时就会影响到其他的图形处理效果,所以就会直接导致帧数的下降。而在大型的3D游戏中,为了使游戏的画面更加的真实,开发小组就会在游戏中设计许多接近现实的物理计算,比如:自由落体,物体运动,空气流动,力的反弹以及各种物体间碰撞等等。但是在传统的计算机中,游戏的物理运算基本上是通过物理引擎加上CPU处理后的物理参数后再反馈到中游戏之中,这种方式往往在遇到大规模的物理运算时就会出现运算瓶颈,这也就造成了游戏中一旦出现大量物理运算时,帧数就会明显下降。不知道各位喜爱玩显卡和3D游戏的玩家记不记得,在3DMark 03测试软件中有着一个测试场景,在一个树木茂密的大自然中,阳光普照,有着河流和各种植物,十分漂亮。相信用3DMark 03测过显卡性能的玩家一定都会记得吧。这一幅场景中,画面由河流中转入到岸上场景以后,相信大家就会发现帧数下降得非常利害,性能较好的显卡大概可保持在每秒20~30帧左右,而普通的低端入门级显卡就有些惨不忍睹了……这时就需要一个专门的物理处理引擎来接管这些物理计算任务。dsoftware Jhon Carmack曾表示说:“我们仍然在做一些很基础琐碎的事……未来的游戏将模拟天气,模拟流体,模拟空气中的粉尘……”,可以看出物理模拟的现实发展可行性和紧迫性。祝你好运!
wy8727
2013-08-04
知道答主
回答量:14
采纳率:0%
帮助的人:10.4万
展开全部
计算机诞生的最初目的之一就是计算火炮的弹道,这实际上就是最初的物理引擎演示,从游戏诞生开始,物理引擎就作为游戏最基本的要素之一出现了。

最简单的物理引擎表现在游戏中无处不在的碰撞检测中,简单来说,一个游戏中的人物能够在有限的空间中运动就是物理引擎的最基本表现。当然还包括重力,碰撞,刚性,柔性,液态,变形等等。物理引擎的最终目的就是仿真。

具体怎么工作嘛,基本就是基于牛顿力学,把现实的物理世界在游戏中还原。

拿Unity3D引擎来说,当你添加一个刚体cube,并且绑定Unity3D引擎提供的物理引擎Rigidbody的话这个被绑定的刚体就具有了物理属性,当他产生运动的时候物理引擎时时刻刻都在计算这个刚体的运动方式,如受到的重力,碰撞后的运动轨迹。都是基本接近真实世界的。

至于怎么写的嘛~
我也再研究,国内物理引擎研究起步比较晚研究的人也比较少资料不多。你如果有兴趣的话可以去度娘一些开源的物理引擎拿来学习一下。我看过一点Box2D的代码,好像是C写的估计比较简单。要想研究3D的话开源的也很多不过要有比较深的编程基础才能看明白。

希望能对你有帮助。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式