MCPLive > 杂志文章 > 管窥DirectX 11与通用计算技术

管窥DirectX 11与通用计算技术

2009-09-15陈可《微型计算机》2009年8月下

DirectX 11是10.1版本的平滑升级吗?

从DirectX 9到DirectX 10,微软几乎将API打破重来以构建全新的渲染体系,Di rectX 10也成为了第一种影响硬件设计的图形API——统一渲染架构代替传统的分离渲染,从而赋予GPU更高的渲染效率和可编程能力,也为通用计算提供良好的基础,之后的DirectX 10.1就属于功能上的小升级。而到DirectX 11,微软引入了更多的新技术,但同时又保有DirectX 10.1的全部特性,换句话说,
DirectX 11实际上就是DirectX 10.1的扩展集,所有DirectX 10.1硬件所遵循的API对于DirectX 11同样适用。


DirectX 10的渲染架构

对用户而言,这样的设计在兼容方面很有好处:无论软件还是硬件,都可以完美地向后兼容。现行的DirectX 10游戏,在DirectX 11环境下都可以正常运行。而对软件开发者来说,包容的设计使他们能够非常平滑地过渡到DirectX 11,而不需要像DirectX 9到DirectX 10过渡那样突兀和漫长。这样一来,软件厂商可以直接转入DirectX 11技术体系,这对于后续产品开发是非常有利的。不过,
DirectX 11不仅只是简单的升级,它带来相当多的新颖特性,比如引入通用计算着色器(Compute
Shader),允许GPU从事更多的通用计算工作,而不仅仅是3D运算,这可以鼓励开发人员更好地将GPU作为并行处理器使用。还有就是引入多线程渲染、提高GPU的工作效率;新增的镶嵌技术(
tessellation)可以帮助开发人员创建出更为细腻流畅的模型,实现高质量实时渲染和预渲染场景。


DirectX 11的渲染架构

首先我们来看DirectX 10体系的渲染架构,DirectX 10加入Geometry Shader(几何着色器,简称GS单元)设计,让GPU可以直接处理模板阴影特效(Stencil Shadows)、动态法向量图(
Dynamic cube maps)及位移贴图(Displacement mapping)等操作——过去这些操作是由CPU来完成的。此外,Geometry Shader高可支持1024个顶点处理,同时可把不必要的顶点数据删除,这两项功能使得绘图运算将较以往更具效率。除了纳入几何着色器外,DirectX 10的渲染流程其实并没有改变,顶点渲染与像素渲染依次进行,只是在硬件层级上,渲染工作不再由独立的顶点着色器、像素着色器进行,而交给通用的统一着色器(或者说统一渲染单元)。

现在我们接着来看看DirectX 11的渲染管线。引人注目的变化就是:在顶点渲染之后,
DirectX 11新增了外壳着色器(Hull Shader,简称HS)、镶嵌器(Tessellator)和域着色器(
Domain Shader)三个新的管线;而在像素渲染环节,DirectX 11则新增了计算着色器(Computer
Shader,简称CS),这些新增的部分也就是DirectX 11的关键所在。

分享到:

用户评论

用户名:

密码: