/LGC物理引擎/彻底解放CPU的物理卡深入剖析

news/2024/2/28 1:28:38
彻底解放CPU的物理卡深入剖析
作者: 网络
日期: 2009-04-24
物理元素越来越多的融入到游戏中。过去这些物理运算的任务都是由CPU来完成的,但是CPU并不是专门为物理运算设计的,同时处理各种繁重的运算会使游戏 画面速度下降,到了必须把它从CPU中独立出来的时候了。本文介绍了目前业界的三种解决方案。

物理卡独立,三巨头争霸

近年来,物理元素越来越多的融入到游戏中。例如在3D游戏里角色是否能穿越墙 面,子弹是否击中目标、风吹动草丛等画面都是需要进行大量物理计算的。在游 戏世界中,电脑要即时的演算物体碰撞、下落、反转等物理逻辑的画面,过去这 些物理运算的任务都是由CPU来完成的。但是CPU并不是专门为物理运算设计的, 同时处理各种繁重的运算会使游戏画面速度下降,同时也限制了游戏中出现大量 的物理特效。

随着游戏画面的发展、电脑AI的进化,物理运算已经使CPU不堪重负,到了必须 把它从CPU中独立出来的时候了。目前业界的解决方案有3种:物理引擎专业商 Ageia正在制造独立的PhysX物理卡,显卡巨头Nvidia同Havok协力于研究“SLI物 理卡”技术,后起之秀ATI则在加紧研究提高其显卡的物理运算能力,三方的技 术方案有何不同呢?

Ageia的PhysX物理卡

Ageia不久前收购了物理引擎设计商Novodex,并将其改名为PhysX。之后,Ageia 推出了革命性的PhysX物理卡并制订了长远的计划来同时发展软件的PhysX物理引 擎和硬件的PhysX物理卡。软件的PhysX物理引擎在PC、PS3和XBOX360上都有广泛 运用,例如半条命2中运用的rag dolls(布娃娃)物理引擎等。

硬件的PhysX物理卡则是IT业界的一项革命,独立的物理卡要比CPU和GPU模拟物 理运算更快更专业,先前Ageia用PhysX物理卡展示了一款8人对战游戏,游戏中 有数百个目标你可以把它们移动、毁灭,每一个物体的位置、外型并不是事先设 计好,而是实时运算出来的。同时计算数千个物体的活动轨迹和破碎画面,过去 是CPU和显卡所无法负担的。Ageia当时使用了对比测试系统,其中一套系统搭载 Geforce 7800GTX SLi和PhysX物理卡,另外一套系统搭载7800GTX SLi,没有 PhysX物理卡,其它配置都相同。有PhysX物理卡的系统以每秒30多帧的速度运行 demo,而没有PhysX的系统运行速度只有每秒6帧!

Ageia早先表示只要游戏开发商支持PhysX物理卡,就可以免费使用PhysX物理引 擎和其它相关的技术支持。这吸引了许多一线游戏包括幽灵行动3、X战警2-天启 降临、City of Villians等的开发商,虚幻3也将支持PhysX物理卡并使用PhysX 引擎,这意味着将来众多的虚幻3引擎游戏都将同时支持PhysX。

不过PhysX物理卡是需要用户单独购买的,价格大约在1500-2500之间。现在DELL 已经开始在其高端机型中预装PhysX物理卡了,BFG和AUSU的PhysX物理卡零售版 本则会在5月上市,首批支持PhysX物理卡的游戏也将于5月面市。

PhysX物理卡2000元的花费必须让消费者觉得值得才会有市场。为此,支持物理 卡的游戏商都极力在游戏中突出极其奢华的特效,这些画面将比现有的物理引擎 游戏更为宏伟。例如在幽灵行动3中,物理卡模式的爆炸图象要比普通模式的绚 丽的多。物体被打成不同碎片,枪口喷射出火焰,地面满是烟雾,这种效果在过 去是CPU和显卡无法承受的,物理卡的确能给玩家带来超凡的显示效果。当前杰 出的3D游戏在物理卡的协助下,将会更加完美。如下图基于物理引擎的“英雄 连”,在未来有了物理卡的支持后,其图象将更为丰富。

Nvidia的“SLI物理卡”

Nvidia则在上周的GDC(游戏开发者大会)中提出了“SLI物理卡”的概念,这项技 术由Nvidia和Havok共同研发。

Havok是一家专业的物理引擎设计公司,许多著名的游戏如帝国3、半条命2、 F.E.A.R、光晕2等都使用了其Havok物理引擎。去年10月,Havok宣布最新的物理 引擎Havok FX即将完成,这也正是Nvidia“SLI物理卡”的技术基础。

什么是Havok FX物理引擎呢?简单的说,它是可以让任何支持Shader Model 3.0 的显卡极大提高物理运算能力的开发软件。现在Havok FX的BETE版已经面世了, 正式版将于夏季发布。Havok还没有透露该API的详情,但表示使用Havok FX技术 后,Nvidia显卡将可以加快电脑物理运算的速度。Nvidia首席科学家David Kirk 称:让GPU负责物理计算是适合的,目前GPU的速度和高可编程性完全可以兼顾物 理运算。游戏开发商通过GPU上各种高级的可编程资源,在GPU上进行并行模拟运 算得到了良好的结果。

目前Nvidia正在与Havok共同研究Havok FX引擎与显卡的兼容性。虽然Havok FX 只需要一块显卡就可以运行,但Nvidia希望研究出基于SLI技术的更强物理引擎: 2块Nvidia显卡通过SLI主板互连,在不需要太多物理运算的游戏中以普通SLI模 式运行;在大量物理运算需要的游戏中则划分一块显卡专门负责物理运算,或者 由2块显卡动态分配任务。

显然Nvidia计划借此次物理卡的浪潮同时扩大在主板、显卡、物理卡3个领域的 影响力,因为要实现“SLI物理卡”必须购买2块Nvidia显卡和1块Nvidia SLI主 板,而不需要Ageia的PhysX物理卡。联想到NForce234及C51等系列主板的畅销、 前期Nvidia收购Uli停产其南桥芯片以及上图GPU对比Pentium等事件,可以看出 Nvidia的确是越来越强势了。

ATI的泛用改进方案

Havok FX只需要支持Shader Model 3.0的显卡,而不是仅为Nvidia显卡可用。所 以ATI将来也可以同样提出基于CrossFire的互连方案。ATI称其在动态渲染管分 配技术的领先、与Microsoft在DX10技术的紧密联系等优势会让ATI比Nvidia更强 大。另外,ATI称在80纳米工艺上也走在Nvidia的前面。

ATI称其R520和R580架构本身具备物理处理功能,该功能可以通过软件方式达到。 下个月ATI就会给各软件开发商提供新的API以改进Pixel shader,新的DPP(并行 数据处理)技术将使显示芯片绕过Direct3D API,同步处理物理数据和pixel shader数据。ATI称这一改进将在让GPU加强物理运算能力的同时还可以极大的提 高GPU运算所有浮点指令的速度,这一多用途的改进方案将使ATI显卡在流体处理、 视频处理等多方面受益。

Havok FX将物理数据转换为Direct3D数据,从而使任何Shader Model 3.0显卡都 可以直接运算。而ATI的最新API可以让开发商使用GPU来加强运算多种物理或浮 点数据,从而直接运算物理数据。开发人员可以开发出多种软件使显卡加强不同 能力来应对不同运用。这种高自由的开放性API使它受到了欢迎。但是ATI的这一 方案也需要专门的开发团队支持,如果是拥有Havok FX的厂商会比较方便,而没 有Havok FX的厂商就只有自己设计复杂的转换程序了。

另一方面,多数开发商都不会为一个游戏开发出NV和ATI两套物理优化方案,所 以这又将牵涉游戏商与2大显卡的联盟问题了,目前还没有任何游戏商对此表态。

又一场API大战

微软也可能会参与这场大战。DirectX首席工程师David Blythe在前日的GDC上透 露到微软正在设计在未来的DX版本中加入物理API工具,届时Havok和Ageia将提 供加强CPU物理运算的软件支持,而ATI和Nvidia的物理卡将给予CPU配合,同时 Ageia也可以另外提供PhysX物理卡。

你或许会想到双核CPU来处理物理数据是否会更理想,这的确有可能。在未来的 SSE中,物理运算将会得到加强,而桌面Conroe双核心的CPU将会是不错的物理运 算处理器。但是,PhysX和GPU处理物理数据的速度依然是双核CPU处理物理数据 的4-10倍,因为它们更适合专门的物理运算,而且,在未来的DX10发布后,它们 还会更加强大。

小结

现在看来,用户是否需要购买物理卡是取决于游戏的,这一情景和十年前显卡的 独立相类似。当时的Quake和Tomb的全新3D画面使用户认识到显卡的重要性,而 现在,支持独立物理运算的游戏在画面上也将再一次出现飞跃。例如在传奇的崛 起中,游戏画面将分为多种等级:如楼房的倒塌,单CPU模式中,无论楼房受到 怎样的攻击都只会按照设计好的方案崩溃,画面也比较简陋;双CPU则会多出简 单的计算,如不同方向不同高度的倒塌等;而在拥有PhysX物理卡的模式中,大 楼会根据攻击的方向、力度,倒向不同方向,同时落下数以千记的尘埃和碎片, 产生更为真实和震撼的画面。可见,画面的变化将不亚于10年前2D至3D的革命。 这场物理卡之战目前还无法预测会是怎样的结局,不过3大巨头碰撞,这场战争 必将会十分精彩。


http://www.ppmy.cn/news/657494.html

相关文章

起源引擎

引擎概述 前序体验   如果想更好的了解“起源”引擎的概念,目前推荐的游戏《半条命2》、《军团要塞2》、《求生之路》(由引擎开发商Valve制作)这3款可以说是是为“起源”引擎巅峰之作。另外还有《洛奇英雄传》(由第三方制作商乐…

[转]关于引擎优化的相关资料

原文链接:http://blog.csdn.net/pizi0475/article/details/7768151 最近在优化项目中用的到引擎,下面是搜集到的一下资料,转帖如下: 1 只在必须的时候Clear。 IDirect3DDevice9::Clear函数通常需要花费较多的时间,因此…

第一回 开篇 D3D渲染流程简介

第一回 开篇 D3D渲染流程简介 http://developer.178.com/201004/65293187592.html   开发这个3D engine已经两年半了,从06年8月刚开始统计的4万多行,到今年7月份的21万多行,有一些感慨,感觉有那么点成就感,不过更多的是惴惴之心:这些代码可以很好的在一起工作吗,足…

关于引擎优化的相关资料

最近在优化项目中用的到引擎,下面是搜集到的一下资料,转帖如下: 1 只在必须的时候Clear。 IDirect3DDevice9::Clear函数通常需要花费较多的时间,因此要尽量少调用,而且只清空的确需要清空的缓存。 2 尽量减少状态切换。…

3D引擎优化方法整理

来自:http://blog.csdn.net/udking/article/details/6048210 【游戏开发】DirectX 性能优化:(From D3D9 SDK)2009-06-04 15:19性能优化:(From D3D9 SDK) 常规技巧 1 只在必须的时候Clear。 ID…

3d引擎优化

3d引擎优化 (转载) http://blog.csdn.net/udking/article/details/6048210 【游戏开发】DirectX 性能优化:(From D3D9 SDK)2009-06-04 15:19性能优化:(From D3D9 SDK) 常规技巧 1 只在必须的时候Clear。 I…

IxEngine开发笔记

第一回 开篇 D3D渲染流程简介 开发这个3D engine已经两年半了,从06年8月刚开始统计的4万多行,到今年7月份的21万多行,有一些感慨,感觉有那么点成就感,不过更多的是惴惴之心:这些代码可以很好的在一起工作吗,足够快吗?bug肯定不少,因为测试的强度毕竟不高,这还不是最…

dx性能优化

DirectX 性能优化 1 只在必须的时候Clear。 IDirect3DDevice9::Clear函数通常需要花费较多的时间,因此要尽量少调用,而且只清空的确需要清空的缓存。 2 尽量减少状态切换。并且将需要进行的状态切换组合在一起设置。 状态包括RenderState,Sam…

The CLR’S Execution Model

微软.NET Framework介绍了很多概念、技术和术语。在这一章我的目标是给你一个概述,.NET Framework是怎么设计的,介绍一些框架包含的技术,和很多定义的术语,当你开始使用.NET Framework的时候将会看到这些。我也将通过带你建立你自…

Android Java(2015-6-18 15:28、2016-1-30 21:18、2016-5-31 11:20)

20190729添加: HsqdeMac:javaalgorithm hsq$ java -version java version "12.0.2" 2019-07-16 Java(TM) SE Runtime Environment (build 12.0.210) Java HotSpot(TM) 64-Bit Server VM (build 12.0.210, mixed mode, sharing) HsqdeMac:javaalgorithm hs…

体感开发学习总结 - 二

Kinect开发学习笔记之(一)Kinect介绍和应用 http://blog.csdn.net/zouxy09/article/details/8145592 一、Kinect简介 Kinectfor Xbox 360,简称 Kinect,是由微软开发,应用于Xbox 360 主机的周边设备。它让玩家不需要手持…

微软实习生日记 第二篇 微软实习生招聘指导手册

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴! 转载请标明出处,原文地址&…

【Unity Shader】---常用帮助函数、结构体和全局变量

【Unity Shader】---常用帮助函数、结构体和全局变量 一、内置包含文件 Unity中有类似于C的包含文件.cginc,在编写Shader时我们可以使用#include指令把这些文件包含进来这样我们就可以使用Unity为我们提供的一些非常好用的函数、宏和变量。 例如:#includ…

2306C++树的经验

信为保存位置,次为本轮下级,连压(t,信,次); 上级位置,就在(信-次).大小(); 空 加节点(){静 串 e;整 i括级(c.型);动*t新 函节点{e,{0,c.号},i};压(信,t);//这是错误的.}//根据最后的函数头,判断是否是新的,再来加先要求名.先得到不同的子节点,然后再构造父节点,最后构造根节点.…

[Flask] Flask会话

由于HTTP的无状态性,为了使某个域名下的所有网页能够共享某些数据,Cookie和Session应运而生 1.Cookie对象 HTTP是无状态(stateless)协议,一次请求响应结束后,服务器不会留下任何关于对方状态的信息 也就是说,尽管在…

史蒂夫·乔布斯的管理课

14条领导真经 “The people who are crazy enough to think they can change the world are the ones who do.” —Apple’s “Think Different” commercial, 1997 那些疯狂到认为他们可以改变世界的人正是那些改变世界的人 -- 苹果“不同凡想”的商业, 1997年 His…

桌面环境DE

什么是桌面环境 在计算中,桌面环境(DE)是桌面隐喻的一种实现,由运行在计算机操作系统之上的一组程序组成,这些程序共享一个通用的图形用户界面(GUI),有时被描述为图形外壳。在移动计算兴起之前,桌面环境主要出现在个人…

Python 人工智能:11~15

原文:Artificial Intelligence with Python 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形象,只关心如何…

硬件基本知识

主板知识 电脑主板就可以称为电脑的神经系统。主板是一种高科技、高工艺融为一体的集成产品,大家在攒机的时候难免有认知上的迷惑。所以先了解一些主板的基本知识对大家攒机是大有裨益的。下面, 我就把主板常用的一些术语简单的给大家解释一下。 大家喜欢…

[ROM] 【技术帖】MIUI移植的简单方法 [转载]

[ROM] 【技术帖】MIUI移植的简单方法 [转载] 此教程仅介绍如何移植MIUI,原理方面的东西不会涉及太多,主要是因为我对原理方面的东西也不是很懂,怕误导了大家。 我以移植MIUI到Incredible为例子: 接下来我们正式讲如何移植MIUI。…
最新文章