POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
楼主: leeshock
打印 上一主题 下一主题

关于显卡多边形生成率的讨论!!!

  [复制链接]
1#
发表于 2008-12-2 21:11 | 显示全部楼层
因为限制GPU性能的瓶颈已经不是多边形生成率这一边

所以自然也没什么好比的
回复 支持 0 反对 1

使用道具 举报

2#
发表于 2008-12-2 22:55 | 显示全部楼层
原帖由 leeshock 于 2008-12-2 21:15 发表
就是说现在生成多边形的速度超过填充象素的速度,象素填充跟不上,所以还是填充率重要?那威慑么游戏设计还要尽量少用多边形啊?

原帖由 leeshock 于 2008-12-2 21:46 发表
只是记得以前说道显卡一直说多边形生成率,记得特别清楚就是当时的ps2号称7000多w是geforce显卡的几倍几倍,yy先卡一般就yy这个指标。后来怎么说着说着这个指标没了。不知道现在的显卡能生成多少啊





最初,3D画面就是给多边形帖上材质,整个过程都是CPU在算,没显卡什么事,显卡只负责把画面显示出来

后来到voodoo,继而到DX7 T&L,显卡开始在3D运算中夺权。那时显卡也没什么其他的事干,在转换坐标的同时顺便算一下光源而已,坐标转换的速度(某种程度上来说也算是多边形生成率)自然就是吆喝的重点。

从DX8(尤其是DX8.1)开始引申出shader的概念。微软认为,如果大家都只拼贴图,迟早撞死在存储器墙上,于是引入更深的流水线长度,让GPU在等待纹理数据从DRAM里抓出来之前,再干点别的————用ALU算算混合啊、过滤啊、法线啊之类的东西,等纹理数据抓过来了,就用这些算术运算的结果给纹理添加更多的效果————这就是所谓的Pixel Shader

同时,微软认为,用一个SIMD vector ALU只算w x y z坐标,太大材小用了。于是就有了Vertex Shader,代替原来的T&L引擎,它既负责传统的多边形的生成(根据CPU的指令来生成,而不是自己凭空“制造”),也负责在生成的过程中添加一些乱七八糟的效果。比如从DX8开始,VS就可以用DP3 DP4指令算n维向量的内积,或者是用srq求一个平方根的倒数什么的。因为每个顶点都包含许多信息,比顶点上的纹理信息,散光和映射光源下表现的颜色,所以你在生成多边形的时候带上这些附加运算,就可以带来更多的效果————比如制造procedural deformation效果,水面就可以变得波光粼粼

VS和PS,本来只是作为多边形生成和纹理贴图时的“附加效果”而存在的,但是随着GPU发展得越来越快,微软发现努力提升这些附加效果,带来的画面提升反而更大,而单纯增加多边形生成率或者贴图速率,容易受硬件限制。于是这些附加效果渐渐喧宾夺主了————这就是DX9

后来,微软在做自己的游戏机的时候发现,PS和VS在底层的算术操作上,实际上很大一部分指令是通用的,于是干脆做到一起,既然都融合到了一起,流程也没有以前固定流水线那么死板了,可以先算PS,再让VS抓PS里的tex数据映射到顶点上,也可以先输出到MRT,再根据MRT回头来渲染....同时,NV认为,随着GPU规模的扩大,就算继续深化流水线,也迟早还是会撞死在存储器墙上。所以就让GPU同时跑很多个小线程,如果一个线程陷入到存储器延迟中,那就切换到另一个线程给ALU执行,这样ALU就不会偷懒(至少理论上是如此)。后来,微软把C1的想法拿到桌面,就有了DX10;NV和ATi把自己的想法和DX10结合,就有了G80和R600

再后来,NV猛然发现,这几年大家在M$的忽悠下1年脱两层皮,GPU已经远非当年阿斗了,而且也不限于图形渲染,可以干的事也多起来了。 介于此时GPU在某些特定领域已经把CPU甩出老远~(至少账面数字上是如此),NV就出了一个粗大(CUDA)

现在,Intel沉不住气了,你GPU当年不过是一个分裂出去的单细胞动物而已,说白了和头皮屑差不多,现在居然喧宾夺主要抢CPU的饭碗,那还了得。于是Intel就出了一个larrabee,告诉大家,CPU要是变态起来,也是可以很变态的。


所以说,多边形生成率从一个重要指标沦落为一个无关痛痒的参数,是从DX8时代开始的,因为shader代替了单纯的生成多边形-->光栅化-->贴图-->输出这个固定流程,成为了显卡最重要、负担最大的工作

未来GPU怎么变,就完全要看微软怎么想了
回复 支持 反对

使用道具 举报

3#
发表于 2008-12-3 08:50 | 显示全部楼层
原帖由 dreamz3 于 2008-12-3 02:31 发表
有一点要说明,3d硬件的发展概念不是微软说了算的,微软只是负责把nv和amd的想法整合成为标准而已


标准由MS制定

nv和amd只负责把MS的标准用硬件实现出来
回复 支持 反对

使用道具 举报

4#
发表于 2008-12-3 08:56 | 显示全部楼层
原帖由 leeshock 于 2008-12-2 23:31 发表
是不是说应为硬件技术的限制,现在要大副提高多边形生成率和贴图速度不行了,也就是这几年多边形这个指标提高不多?还是说现在这个指标包含在shader里面了? 要yy就yy SM x.0这个?性能?还是想知道现在的48xx gtx2xx大概每秒能生成多少啊?


现在的游戏,主要是卡在shader这个环节,因为shader过程可以比传统意义上的多边形生成复杂无数倍。所以,即使GPU把多边形生成率提得再高,shader性能不上来的话,显卡跑游戏照样很慢

严格来说,现在显卡的多边形生成率大概就是setup单元光栅化的速度,具体是多少就不清楚了。当年R300 4个vector SIMD号称可以每周期生成1个多边形,按这个标准来算,4870或者GTX260这种显卡,理论上的多边形生成率应该很轻易超过1000M
回复 支持 反对

使用道具 举报

5#
发表于 2008-12-3 11:20 | 显示全部楼层
原帖由 snakenj 于 2008-12-3 11:03 发表
不过CG工作站里,有个指标是 线框 吧
那些专业显示卡也是号称可以比娱乐卡多了线框加速的功能,在显示超级多的多边形的时候,速度快点

效果好的话,多边形数量少点,画面也可以,
最直接的例子就是 XBOX Halo, ...


warhead随便一个frame里的多边形都超过300万了

看来游戏机还是马达马达达啊 {mellow:]
回复 支持 0 反对 1

使用道具 举报

6#
发表于 2008-12-3 11:27 | 显示全部楼层
多边形早就已经归来了

去看看DX11的paper吧
回复 支持 1 反对 0

使用道具 举报

7#
发表于 2008-12-3 11:33 | 显示全部楼层
原帖由 R620 于 2008-12-3 11:31 发表
GTX280和HD4870X2每秒能生成多少亿个多边形?


这个你去问AMD和NV比较好
回复 支持 反对

使用道具 举报

8#
发表于 2008-12-3 15:48 | 显示全部楼层
光栅化,在DX11就基本到头了
回复 支持 1 反对 0

使用道具 举报

9#
发表于 2008-12-4 13:57 | 显示全部楼层
原帖由 snakenj 于 2008-12-4 13:31 发表
求测试图,无图无真相.

从来就没有过图,
3000W polygon 的画面,也得分30fps,60fps,
那么就是100W polygon和50Wpolygon 每frame

没有厂家公布的

我是按照XBOX这样推算的
XBOX是贫弱的P3 733,而且还是1 ...


{happy:] 大哥你先去确认一下frame和fps的含义
回复 支持 反对

使用道具 举报

10#
发表于 2008-12-5 11:07 | 显示全部楼层
PC画面还不能凌驾X360?

楼上你确认你是地球居民?{happy:]
回复 支持 反对

使用道具 举报

11#
发表于 2008-12-5 13:42 | 显示全部楼层
原帖由 char999 于 2008-12-5 13:39 发表
PC画面还不能凌驾X360?

楼上你确认你是地球居民?

你帮我找个能凌驾的吧。CRISIS VH也别跟我说了,那东西漂亮是漂亮,但也就那样,该方的地方还是方,假的还是假


对比画面,PC上一个FEAR资料片就够游戏机最顶级水平了,哪用得上crysis
回复 支持 反对

使用道具 举报

12#
发表于 2008-12-6 10:29 | 显示全部楼层
原帖由 leeshock 于 2008-12-5 14:10 发表
x360和pc那个画面好去别处讨论吧.要是象上面说的gtx280理论3e个,光源,物理.社么的特效用掉一部分性能,算他还有1.5e/秒, 游戏一秒一百真的话就是1500w一真画面,场景大点,人物,东西多点,还源源不够啊,怪布道连crysis也那么多方的东西,不过不知道游戏当中如果一个人物,物体建模好了,是不是这个物体在下一真画面当中出现,就不要再算多边形了?,还是每真画面都要把场景里所有的东西都重复计算一次多边形?谁知道,说一下?


每一帧都要把整个场景渲染一遍
回复 支持 1 反对 0

使用道具 举报

13#
发表于 2008-12-6 10:40 | 显示全部楼层
现在的游戏根本不可能到每frame 300-500W的多边形

几个画面出色的主流FPS的多边形一般是两位数左右,COD4、COD5在10~20W左右,GRID、GOW、上古4可以到20~40W  polygon per frame

GT5之类的游戏运行起来每个frame多边形也不会多,维持在两位数的水平,因为7800的setup引擎能力摆在那里,它们依然是用出色的shader带来更养眼的效果

比较例外的是Crysis,它每帧的多边形可以随便超过100W,Crysis warhead最高的时候可以到每个frame 350W左右的多边形,这种规模的多边形让这个2007年的引擎的渲染效果至今都没有被超越,这也是无论用什么显卡都跑不快的原因之一。







下图是cho跑的COD4引擎某一段场景渲染特性分析



SHADER:TMU:ROP三组单元的平均繁忙度为76.1%、49.8%、28%,SHADER等待TMU所占用的处理时间平均为13.3%,几何处理繁忙度并不高,只有大约0.2%,Setup引擎处理的三角形数量平均每帧约为11.3万个三角形,装载的纹理大小为439.4MB左右。
回复 支持 1 反对 0

使用道具 举报

14#
发表于 2008-12-7 16:54 | 显示全部楼层
原帖由 leeshock 于 2008-12-7 15:47 发表
比较例外的是Crysis,它每帧的多边形可以随便超过100W,Crysis warhead最高的时候可以到每个frame 350W左右的多边形,这种规模的多边形让这个2007年的引擎的渲染效果至今都没有被超越,这也是无论用什么显卡都跑不快的原因之一

果然还是多边形生成率这个性能重要啊,被显卡厂忽悠了啊


Crysis的模型精细只是它对硬件要求高的原因之一

CE2的shader、材质、postprocessing都是PC GAME有史以来最复杂的,而且因为渲染的object多,overhead也很大

我前面已经说过了,多边形生成率根本不是现在硬件的瓶颈所在,首先把显卡压死的是shader
回复 支持 1 反对 0

使用道具 举报

15#
发表于 2008-12-15 11:26 | 显示全部楼层
shader也是用来加强立体感的

优秀的shader技术可以弥补多边形数量的不足
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2024-5-5 15:22

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

快速回复 返回顶部 返回列表