DirectX10还没怎么用过,DirectX11又快出来了,刚刚装好了08年11月份的SDK,就赶快把DirectX11的新特性浏览了一下。虽然现在还是预览版,但按理来说和最终的D11的规范也差不了多少了,那就来先睹为快吧。
D11的4大新特性包括:
新特性1:计算着色器(Computer Shader) 这是继D10中引入的几何着色器(Geometry Shader)之后有一个重要的可编程阶段。但和GS不同的是,CS不是渲染管线的一部分。它的作用是进行通用计算,类似于NVIDIA的CUDA库。显卡的作用现在就不只是进行图像渲染了,它也能进行大量复杂的计算了。
新特性2:动态着色器链接(Dynamic Shader Linkage) 在现在的着色器编程中,着色器程序的复用都是在代码级,即将通用的功能写到的子函数中,然后在着色器代码中进行调用。这实际上只是减少了代码的编写量,并没有减少最终编译出来的着色器长度。相当于C编程中的静态库链接。而动态链接则是在可执行代码级的复用。相当于动态链接库(DLL)。
新特性3:多线程 不管是CPU还是GPU,当单核的能力已经接近于极限时,多核就是必然的趋势。但不是所有的程序天生都能被多核加速的,需要精心的设计。D11的多线程/多核设计就是为了便于将运行时/驱动/应用程序间的复杂分布到不同的核心上去。更有效地利用GPU的特性。同时,D11的多线程支持也提供与XBox360相似的开发环境,便于跨平台的开发。因为XBox360有6个核心。另外,多线程也便于进行并行地进行GPU通用计算。
新特性4:细分(Tesselation)D11将支持实时的高阶图元细分,也就是利用GPU来进行各种细分算法运算。这样可以动态地调节细分的程度,以后人工的模型LOD就可以被淘汰了。
完整的新特性列表:
细分
外壳着色器(Hull Shader)
域着色器(Domain Shader)
多线程
着色器特性
纹理
保守的oDepth
大量内存支持
流输出增强
ShaderModel5
只读的深度和模板视图
间接绘制
其他