减少游戏执行瓶颈:跟以往的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个。此外玩家们期盼了好多年的置换贴图Displacement Mapping也已经成为DX10的标准之一。小熊在线www.beareyes.com.cn
虽然SM4那些绚丽夺目的特效用SM2同样能够实现,只不过用SM2来做这些特效的话性能损失会很大。DX 10另一个最令人注目的改进就是可以为API节省计算开销(API overhead)。DX10还带有一个真正的整数指令集,可以尽可能完成更多的寻址计算,更多的数据打包和解包;当然这些功能并不会创造出一些新的画面特效,但它允许开发人员在GPU中高效的完成更为智能、复杂的渲染工作!

更复杂绚丽的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高出许多,同屏下能够渲染的粒子数量也就更多,所以可以预计烟雾跟爆炸的效果会比以往更为震撼。小熊在线www.beareyes.com.cn

|