发表时间:09-6-8 来源:计算机故障网 点击:
由CS带来的新型应用实际上是无限的,是取之不竭的,但首先对此感兴趣的是游戏开发商们们,他们正研究如何利用这一新增特性来为游戏引擎添加PS无法实现的高级特效~~其中,这些新型应用就包括A-Buffer (A缓存) 取样技术,该技术可以很大程度上增加抗锯齿以及无规则透明度的性能,可以带来更先进的Deferred Shading(延迟着色)技术、更先进后期处理效果(post processing effect)和卷积运算、以及更先进的专为频域运算的快速傅利叶转换(Fast Fourier Transform,FFT)以及区域求和表算法。
除了图形渲染外,游戏开发者可能同时也希望做一些诸如IK(inverse kinematics,逆运动学)、物理、人工智能以及其他在GPU上执行的传统的CPU任务之类的运算。用CS算法在GPU上执行这些数据意味着这些数据将可以更快供渲染计算使用,而且一些算法可能在GPU上的执行速度更快。此外诸如AI、物理等可以同时在CPU/GPU上进行运算的算法,可以通过CS交由GPU来处理以节省带宽资源。
动态shader链接与增强纹理压缩技术

随着shader特效越来越复杂,游戏开发者开始对shader的灵活性与弹性不足而头痛。举例来说吧,比如面对一个需要多种复杂shader混合来渲染的场景,程序员往往需要把多段shader写进一段长代码里,形成一个“超级shader”。这种处理方式虽然方便了开发过程,但弊端非常明显:一是shader过于复杂导致硬件性能下降,即所谓的优化差,低端硬件无法运行;一是不方便代码的除错检验;
为了解决这一问题,微软在DX11中带来解决之道。DX11提出shader子程序的概念,即允许程序员将各种小段、简单或为个别需要而特制的shader程序链接起来,再根据实际需要动态调用,这样既能够提高硬件兼容性,同时减少“巨型shader”对寄存器空间的占用,有效提升性能。
增强纹理压缩技术

微软已经很长很长一段时间没有更新DX的纹理压缩算法了,在业界人士的大力呼吁下,DX11终于在这方面有了新进展。DirectX 11加入了两种新的压缩算法——BC6和BC7。其中,BC6是专门针对HDR图像设计的压缩算法,压缩比为6:1;而BC7是专门为LDR(低动态范围)图像设计的压缩算法,压缩比为3:1。

上图展示的是图像通过BC6压缩模式进行压缩的前后效果对比图。其中左边的图像为原始图像,中间的是在压缩过程中损失的一些细节,而右边的就是压缩后的图像。可以看出,从画质上来看几乎没有损失(肉眼看不出),但是却可以大幅度降低显存的占用。

上图则是BC7针对LDR纹理的压缩与传统的BC3纹理压缩对比。可以看出传统的BC3纹理压缩损失了大量的纹理细节,压缩之后的效果也很不好。而采用BC7算法压缩后的纹理,丢失的细节很少,效果也非常好,这就是改进纹理压缩的魅力。
此外微软还要求DX11硬件的纹理解压必须完全按照DX11的API规范,此举意在敦促硬件厂商在DX11到来之前完善目前DX10的纹理压缩规范,以提高纹理质量。
虽然距离DX11正式版登场还有大约半年的时间,但作为DX10的超集以及
WIN7的助阵,预计DX11的普及速度将远远超过DX10!目前有关NVIDIA、AMD下一代DX11硬件的“内幕”也不断曝光,由此可见双方在新一轮的军备竞赛是丝毫不敢怠慢,而作为一名玩家,就让我们拭目以待,做个精明的渔翁吧!