gbaoye 发表于 2011-11-9 21:21

普及知识:nVIDIA与AMD对曲面细分技术的实现

1.nVIDIA对曲面细分的理解与实现  作为GPU领域的领军者,nVIDIA认为曲面细分技术所代表的GPU几何性能是新一代显卡最重要的功能,也是DirectX 11最重要的组成部分。GPU的发展从Geforce FX5800时代发展到Geforce GTX285,五代时间内像素处理能力增长了1500%,而几何性能只增长了300%。因此nVIDIA认为几何性能已经成为制约GPU性能的瓶颈,在新一代Fermi架构(费米架构,包括GT400,GT500系列显卡)中,要专门加强几何处理能力,曲面细分作为几何处理的典范便首当其冲得到了加强。
  在Fermi架构中,nVIDIA通过PolyMorph Engine,将Tessellation任务分配给CUDA单元(CUDA单元也就是通常说的“流处理器”,nVIDIA称其为CUDA单元)处理。Fermi第一代旗舰显卡GTX480拥有15个PolyMorph Engine,也就等效于拥有15个具有Tessellation技术处理能力的单元。
  nVIDIA这样做的优点在于,可以在高曲面细分负载下获得优秀的曲面细分能力,也就是在纯Tessellation计算中GPU的几何性能相当出色。在单纯的Tessellation计算中,nVIDIA以16倍于AMD的Tessellation处理单元的数量,得到了6倍于AMD的Tessellation处理能力。http://imgsrc.baidu.com/baike/abpic/item/c71d0e38aad3afa9b311c749.jpg

不过缺点在于,这种设计占用了CUDA单元的计算能力,前文说过,曲面细分并不是DirectX 11的全部。在实际游戏中,并不是单纯的Tessellation计算。CUDA单元还要处理其他游戏相关的3D渲染数据,如果游戏中3D渲染数据处理需求不大,这种设计就不成问题,不过一旦3D渲染数据处理需求很大,比如高分辨率,高全屏抗锯齿,丰富的光影效果等,那么这种设计的缺陷就会暴露出来。
  这就是在3DMARK 11中,GTX460成绩不如HD5830的原因之一,3DMARK软件图形、光照、抗锯齿计算压力很大,GPU还要分出CUDA单元去处理曲面细分计算,因此整体计算能力便捉襟见肘。再比如在《地铁2033》中,即使GTX580也不能打开全部效果在1080P下全程流畅运行, 且表现不及HD5970 。这与nVIDIA的曲面细分实现方法也是有关的。2.AMD对曲面细分的理解与实现  作为Tessellation技术的开发者,AMD(ATI) 对曲面细分的态度有所不同。AMD认为,在当前的DirectX 11游戏中,将一个物体的细分后最小的像素在16个是比较合适的,过分的加大曲面细分负载所带来的变化,是人的肉眼无法分辨的。因此AMD坚持对模型做适度的Tessellation处理才是理智的,过分的加大Tessellation计算负载,只是在白白浪费计算资源,因为人的肉眼无法分辨。
  在Evergreen架构(即HD5000系列)中,AMD秉承了自R600以来的做法,集成了一个专用的Tessellation处理单元。在之后的Northern Islands架构的Barts核心中(即HD6800系列),AMD又对Tessellation处理单元做了优化,通过增强的线程分配模块设计,Barts核心在低Tessellation计算负载下拥有1.5倍于5800系列的处理能力。当然高负载下仍然不理想。之后的采用Cayman核心的HD6900系列显卡,则将专用的Tessellation处理单元增加到2个。
  AMD这种设计的优点在于,专用的Tessellation单元并不占用流处理器资源,不影响3D渲染数据的计算。在实际游戏中,画面分辨率越高,抗锯齿级别越高,3D渲染处理需求越大,这种设计的优势就越明显。
  其缺点是,在3D渲染数据处理需求不大时,遇到高负载Tessellation计算,便力不从心。

raistlinwang 发表于 2011-11-9 21:27

本帖最后由 raistlinwang 于 2011-11-9 23:57 编辑

从这点可以看出AMD的做法更理智

孤岛危机2 DX11补丁(NV花了大价钱) 曲面细分就被严重滥用(64级)也就导致了 相同设置下 A卡帧数全面低于N卡
相应文章http://www.chiphell.com/thread-250085-1-1.html后来A卡出驱动补丁 可以自行设置曲面细分等级根据对比 孤岛危机2里面 细分曲面16级跟64级就看不出来有什么差别了

wwwxp127 发表于 2011-11-9 21:46

单从游戏的角度上来说,AMD的做法比较好,毕竟游戏不是只有曲面细分,纹理,光影都得有才行,而NV的做法更倾向于专业角度,单一渲染某一方面很强。

gbaoye 发表于 2011-11-9 21:46

回复 2# raistlinwang


    看来我不必纠结于n卡的物理加速了,在dx11下,再开启物理加速,哪等于自寻死路

raistlinwang 发表于 2011-11-9 23:41

本帖最后由 raistlinwang 于 2011-11-10 00:23 编辑

N卡的物理加速也只是PHYSX TO GPU的专门游戏才能享受 这些游戏屈指可数(比如 比较有名的 蝙蝠侠 黑手党2) 当然 有总比没有好 绝大部分用PHYSX物理引擎制作的游戏都是通过CPU处理的更何况还有intel的havok物理引擎这个老大哥(CPU的大佬基本是不可能让havok采用GPU去处理的 最近的代表作 战地3) 还有bullet物理引擎(大名鼎鼎的GTA4物理效果就是采用bullet物理引擎制作的)

引用一下
Bullet是一个开源的物理模拟计算引擎,世界三大物理模拟引擎之一(另外两种是Havok和PhysX)。广泛应用于游戏开发和电影制作中。Bullet也是AMD开放物理计划成员之一。(所以请小白以后不要说A卡没有物理 其实havok和physx都可以用CPU或GPU处理这些物理特效 只不过现在是他们的专利 没有开源而已)   

Bullet是一个跨平台的物理模拟计算引擎。支持Windows、Linux、MAC、Playstation3、XBOX360、Nintendo Wii。Bullet也整合到了Maya和Blender 3D中。   

大部分的物理引擎都是通过CPU完成物理模拟计算,目前仅有nVIDIA PhysX可以调用GPU完成物理模拟计算且将其实用化。GPU有着CPU无法比拟的并行计算和浮点计算能力,而复杂的物理模拟计算(例如流体模拟和柔性物体模拟)却十分依赖并行计算能力和浮点计算能力。在与AMD合作后,Bullet Physics物理引擎可以透过OpenCL或者DirectCompute,使用GPU完成物理模拟计算,这也是AMD开放物理计划的内容之一。

raistlinwang 发表于 2011-11-9 23:55

A卡玩PHYSX TO GPU的游戏 其实只要再弄一块低端卡(GTS250)作为物理卡就能完美解决问题了 效率很高

以前的老A卡+GTS250 混交测试 黑手党2

http://img0.3dm.178.com/2010/08/20/481/66556146441745.jpg

http://img0.3dm.178.com/2010/08/20/481/66556157353187.jpg

http://img0.3dm.178.com/2010/08/20/481/66556177677920.jpg

http://img0.3dm.178.com/2010/08/20/481/66556186988584.jpg

call52wendy 发表于 2011-11-15 00:59

好强大,选择AMD确实不错哈哈

a4227675 发表于 2011-11-15 01:16

要不怎么出性价比,N/A两卡设计方面都一样,那玩家选择显卡就费力了!

10911 发表于 2011-11-15 18:20

N卡有N卡的强项,个人看好N卡能够大量处理细分曲面的能力和物理加速。另外就是价格,价格给力最重要。

hzypage 发表于 2015-5-29 11:38

好强大,选择AMD确实不错哈哈
页: [1]
查看完整版本: 普及知识:nVIDIA与AMD对曲面细分技术的实现