正文内容 评论(0)
[借VISTA东风 DirectX10开始革命]
作为DirectX 的第十代产品,借着Vista的东风,基于WDDM(Windows Vista Display Driver Model)的支持,DirectX10相对于以前的版本可以说是一场革命,很多概念被重新改写,新增了对一系列特效的支持,对指令集和寄存器也进行了大量的扩充。
新加入的GS(Geometry shader)几何着色器使得浮点性能更强的GPU代替了CPU以往繁重的多边形计算工作,并使得置换贴图等特效在DX10的游戏中广为应用。在图像渲染过程中增加了GS的过程,以代替原来由CPU所作的几何运算的工作。由于很多部分被重新定义,所以从渲染流程上看,DX10的变化相当的大。
对着色器进行了重新定义, VS、PS和GS被被统一为Shader,公用着色处理核心被定义成了一个全能的角色。在游戏中因为画面的不同,VS、PS的使用比例也在随时变化,固定比例的VS、PS会随着环境不同产生浪费,通用的着色器就能圆满的解决这个问题。
新定义的Shader Model 4.0为游戏开发人员提供了更大的方便,最大指令数从512增加到了64K,临时寄存器扩充到了4096个,常量寄存器扩充到了65536个。从下表可以看出SM4.0改进有多大,可以预见的是在SM4.0的环境中,程序员将会更加得心应手。
取消了D3DCAPS的兼容性检测函数,这意味着DX10将对nVidiaG8X以下和ATI的R6XX以下的硬件不再提供支持,同样也不再对之前DirectX版本的程序提供支持。DX10将只存在于Vista中,且只有支持DX10的硬件才能够使用DX10。
DX10还能大大减少了系统的开销,使得理论上与DX9取得相同画面表现时,性能要更强。尽管在目前版本中尚未提供物理引擎的支持,但在DX10的后继版本中将同时提供对GPU进行物理运算和物理加速卡的物理运算的支持。
[DirectX 10强在了哪里]
DX10完全抛弃了近六年来一直使用的PS/VS分而治之的方案,DX10完全颠覆了GPU当中的固定渲染模式,并且支持GPU行为的完全自由化,即GPU不再明确划分PS和VS,并且支持多种任务,如2D/3D/视频加速等等任务的自由分配,而且将加入Shader4.0技术,可以说DX10是显卡技术的一次飞跃。
统一着色器
当代的显卡(以及DX 9)都采用象素着色器跟顶点着色器分离的架构,这种架构不允许GPU同时处理象素跟顶点着色。比如说显卡在进行顶点着色的时候象素着色器单元就变成闲置,浪费了资源而且还形成了不必要的性能瓶颈。特别是现在分离式架构的GPU PS资源都要远高于VS,在这种状况下瓶颈的负担无疑是雪上加霜。而在采用了统一着色器架构的GPU以及运行于DX10的系统中,显卡可以同时对顶点、几何以及象素着色进行处理,而不必等待逐个分别进行。这也使得资源得以合理分配,保证整个架构高效运行。
华丽的的shader特效
DX10还为我们带来一个新的着色器单元——几何着色器(Geometry shader)。在过去的DX9中,Vertex Shader每一次运行只能处理一个顶点的数据,并且每次只能输出一个顶点的结果。在整个游戏场景中,绘制的几何图形的任务量非常庞大,如果仅仅依靠Vertex Shader单一来完成,效率会极其低下。而更致命的是VS无法单独生成或重组多边形(缺乏Tessellation),所以在以往只有VS跟PS的GPU中,生成一个模型往往需要CPU的“大力支持”。Geometry shader几何着色器的主要任务就是连点成线,可以根据顶点的信息来批量处理几何图形,对Vertex附近的数据进行函数处理,快速绘制出新的多边形。然后再通过steam out将这些结果传递给其他Shader或buffer,使得CPU可以从原本复杂庞大的多边形运算中解放出来。现在可以让GPU直接处理细微的粒状效果,如烟雾和爆炸效果等(在这之前这一任务通常交由CPU来完成)。而由于GS的性能要比CPU高出许多,同屏下能够渲染的粒子数量也就更多,所以可以预计烟雾跟爆炸的效果会比以往更为震撼。
SM3.0被SM4.0替代
跟以往的DX版本一样,DX10的着色器版本再次得到提升,即从D9C的SM3.0升至SM4.0。SM4.0在指令数量上将不再有限制,而之前的SM3.0指令数不能超过32768条,SM2.0更是只有可怜的96条;Temporary Registers Buffers 提升至 4096 、 Constant Registers Buffers 提升至 65536 (16 个4096 Buffers);shader精度还支持到前所未有的64Bit;另外每个着色器的Texture数目由SM3.0的16个提升至128个,支持的纹理分辨率比上代DX9翻倍达到8096*8096, Render Targets 则增加到8个。
硬件标准化
兼容性问题不仅困扰着厂商同时也影响着用户,DX10为显卡提出了非常严格的规格要求,它要求3D性能必须与Direct3D的版本号绑定,也就是说,所有3D厂商都必须在显卡上支持相同的3D功能--这将为游戏开发提供标准同一的硬件开发环境,对于游戏开发人员而言,他们现在可以通过统一指令集更轻松地开发一个DX10代码路径,这意味着他们可以花费更多时间在游戏上,而不是像以前那样把大量时间耗费在为某个特殊的硬件厂商做专门的优化设计。
本文收录在
#快讯
- 热门文章
- 换一波
- 好物推荐
- 换一波
- 关注我们
-
微博:快科技官方
快科技官方微博 -
今日头条:快科技
带来硬件软件、手机数码最快资讯! -
抖音:kkjcn
科技快讯、手机开箱、产品体验、应用推荐...
