PhysX技术

PhysX技术基本介绍中文名:PhysX物理运算引擎
外文名:PhysX technoligy
套用平台:nVIDIA
PhysX概述物理运算引擎的作用,简而言之,就是令虚拟世界中的物体运动符合真实世界的物理定律,以使游戏更加富有真实感 。物理模拟计算需要非常强大的整数和浮点计算能力 。更为重要的是,物理处理具有高度的并行性,需要多执行绪计算,演算非常複杂,需要消耗很多资源 。PhysX可以由CPU计算,但其程式本身在设计上还可以调用独立的浮点处理器(例如GPU和PPU)来计算,也正因为如此,它可以轻鬆完成像流体力学模拟那样的大计算量的物理模拟计算 。PhysX物理引擎可以在包括Windows,Linux,Xbox360,Playstation3,Mac等在内的全平台上运行 。AGEIA公司后来被Nvidia收购,PhysX引擎也就跟随划入Nvidia旗下 。2010年5月,AGEIA公司创始人、Nvidia主管PhysX技术副总裁Manju Hegde跳槽至AMD公司 。外界猜测其跳槽原因是AGEIA被Nvidia收购后,PhysX并没有得到良好的发展 。AGEIA时代的PhysXPhysX物理运算引擎由五名年轻的技术人员开发,他们成立了AGEIA公司 。PhysX最初称为NovodeX,后改名为PhysX 。AGEIA曾为《虚幻竞技场3》开发几张加入PhysX引擎的MOD地图,物理效果非常出色 。同时AGEIA也自己开发一个免费的名为《好战者》的物理游戏 。此后的一些PhysX游戏,也大都基于虚幻3引擎 。例如《镜之边缘》、《蝙蝠侠:阿卡姆疯人院》、《一舞成名》等 。可以说虚幻3引擎与PhysX物理引擎已经成了一对黄金搭档 。[虚幻竞技场3 PhysX地图包]虚幻竞技场3 PhysX地图包AGEIA提供一流的PhysX软体开发包AGEIA PhysX SDK,它不仅可以套用于次世代PC游戏开发,还可套用在Console游戏开发中 。AGEIA声称,PhysX 将会使设计师在开发游戏的过程中使用複杂的物理效果而不需要像以往那样耗费漫长的时间开发一套新的物理引擎,而且使用了物理引擎还会大量消耗CPU资源使一些配置较低的电脑无法流畅运行 。AGEIA 更宣称 PhysX 执行物理运算的效率比CPU与物理处理软体的组合高出 100 倍 。游戏设计语言 Dark Basic Pro 将会支持 PhysX,并允许其用户利用 PhysX 执行物理运算 。PhysX物理加速卡(PPU)BFG生产的PhysX物理加速卡由于PhysX物理引擎在设计上就并不适合用CPU去计算,因此AGEIA公司还为PhysX引擎设计了专门的运算硬体,PhysX物理加速卡 。PhysX物理加速卡的核心被称为PPU,即物理处理器(Physicsprocessing Unit) 。PhysX物理加速卡在运行游戏时不参与任何3D渲染,只计算PhysX引擎 。按照AGEIA当初的构想,未来的个人电脑将由CPU、GPU、PPU三大核心构成 。其中CPU居中调度,GPU负责图形渲染,PPU则做物理计算 。AGEIA当初构想的未来PC组成2006年,AGEIA公司发布了第一张PhysX物理加速卡,称为PhysX 100 Series 。公版设计为搭载128MB GDDR3显存,採用PCI接口 。生产PhysX 100 Series的包括华硕和BFG,其中华硕的PhysX物理加速卡搭载了256MB GDDR3显存 。后来,AGEIA公司又开发了第二代PhysX物理加速卡,称为PhysX 200 Series,与第一代产品最大的不同在于採用了PCI-E插槽,增强了数据交换能力 。AGEIA公司被Nvidia收购后,PhysX物理加速卡停止了开发 。但有评测表明,PhysX 100 Series的PhysX物理计算能力,超过了Geforce 9600GT,至少与Geforce 9800GT相当 。[1]可见PhysX物理加速卡在设计思路上是非常成功的 。基于PhysX SDK 2.8.1及其以下版本开发的游戏都支持AGEIA PhysX物理加速卡 。需要说明的是,部分基于PhysX SDK 2.8.1开发的游戏是被人为禁止物理加速卡而造成物理加速卡无法工作的,例如《一舞成名》和《蝙蝠侠:阿卡姆疯人院》,这种情况是可以通过修改驱动破解的 。但是基于PhysX SDK 2.8.3及其以上版本、基于PhysX APEX开发的游戏就无法支持AGEIA PhysX物理加速卡了 。编辑本段nVIDIA时代的PhysX1.nVIDIA PhysX物理加速技术2008年,在Intel收购了物理引擎界的领军者Havok后,Nvidia也收购了排名第二的AGEIA 。正式将PhysX技术划入旗下 。PhysX by NvidianVIDIA PhysX承袭自AGEIA PhysX,但Nvidia在此基础上推出了nVIDIA PhysX物理加速,并将PhysX物理加速功能移植到nVIDIA GPU中,用户不必额外购买PhysX物理加速卡就能享受到PhysX物理加速功能 。藉助CUDA架构,nVIDIA重新编写了PhysX物理加速程式,将PhysX物理加速引擎从AGEIA PPU移植到了nVIDIA GPU上 。通过重新编写程式,nVIDIA GPU中的执行绪调度器将承担原来PPU中“控制引擎”的工作,即负责具体任务的指派工作;流处理器将承担原来PPU中“矢量处理引擎”的工作,即负责物理计算;在物理计算完成后,由DME来负责输出;而后,GPU再通过硬体抽象层实现布料模拟、毛髮模拟、碰撞侦测、流体力学等物理技术 。简而言之,就是利用CUDA,将PhysX引擎中的计算指令,翻译给GPU,让GPU去计算 。这样做是因为GPU具有优秀的浮点计算能力和并行处理能力 。[2]通过这种方法,Nvidia Geforce 8系列,9系列,GT200系列,GT300系列,GT400系列桌面显示卡;Geforce 8M系列,9M系列,GT100M系列,GT200M系列,GT300M系列,GT400M系列移动版显示卡,只要流处理器大于32个且显存大于256MB,都可以支持PhysX物理引擎的计算,也就是支持PhysX物理 加速 。所谓PhysX物理加速,是指相对于CPU来讲,GPU加快了PhysX物理引擎的计算速度 。并不是说PhysX引擎只能由nVIDIA GPU处理 。A-N混合交火使用AMD显示卡执行图形渲染、辅以NVIDIA显示卡进行PhysX物理加速是个很不错的方案,不过NVIDIA在新驱动中封杀了这种做法,会自动禁用PhysX 。由HD5970和GTX480组成的最强A/N混合交火不过人民民众的智慧是无穷的,破解补丁已然出炉,来自一位名叫“Liandri / THETA”的国外高手 。根据说明档案,该补丁可以在使用非N卡作为系统主显示卡的时候开启N卡的物理加速,但是仅限Windows 7作业系统(WDDM 1.1),而且不能让单独一块AMD显示卡支持PhysX 。但Nvidia表示,他们没有测试过A-N混合交火的稳定性,最这种破解带来的一切后果,将由用户自行承担 。Liandri / THETA还大声疾呼:不要让私有封闭标準为你选择硬体!一旦它们灭亡,这些硬体就会成为废物 。