DX10与DX11有那些区别?要具体.

2024年11月28日 09:23
有1个网友回答
网友(1):

应该来说DX11仅是 DX10的一个扩展集,远没有DX8到DX9 那样改进巨大。以下是我抄的内容: 解析DX11五大特性
 相对DX10来说,DX11最关键的特性有5点,分别是Multi-Threading(多线程处理)、Shader Model 5.0(着色器模型5.0)、DirectCompute11(计算着色器)、Tessellation(镶嵌式细分曲面技术)以及Texture Compression(纹理压缩)。
Multi-Threading(多线程处理)
  DX11当中新增的多线程处理技术是专门针对多核应用而生的,它通过引入“延迟执行”的指令将一个渲染进程拆分为多个线程,并根据处理器核心/线程数设定延迟执行内容的数目。多线程的涵义是非常广的,每一帧画面可以被分为几个图层,每个图层又可以分为N个区块,所有的这些都可以被并行调度到延迟执行的线程之中。标记为“立即执行”的线程与传统的渲染没有区别,而标记为“延迟执行”的线程则可以在后台将图形生成所必须的资源做预先的存取,比如纹理拾取、像素生成、常数缓冲等操作都可以多线程并行处理,通过多核处理器的资源来减少程序等待时间,从而使得渲染不再受到处理器的瓶颈制约。多线程技术的引入对于双卡甚至多卡互联系统更为重要,以往多颗GPU在DirectX中只能模拟成一个虚拟GPU,所有的GPU必须共享指令缓冲区并接受处理器调度,渲染线程的拆分与合并指令延迟都很大,GPU越多则效率越低。而在DX11当中,如果用四核处理器搭配四路交火系统的话,每颗处理器都可以单独控制一颗GPU的渲染线程,在平均分配处理器负担的同时,提高了GPU资源利用率,从而大幅提升游戏性能。事实上,在DX9以及DX10游戏中,这一技术同样可以得到应用,但是由于API和函数指令的限制,使得使用这项技术有了很大的阻碍,因为从微软本身的态度而言,只建议在DX11中使用多线程处理技术。

Shader Model 5.0(着色器模型5.0)
  Shader(渲染)是一段能够针对3D对象进行操作、并被GPU所执行的程序。历代DirectX每逢重大版本升级时最主要的更新内容就包括在了Shader Model之中。而DX11相比DX10,Shader Model的变化并不算大,只是增加了5个全新的指令集。但是对于游戏开发者而言,Shader Model 5.0函数和子程序代码的开发都比上一代更加简单方便。增加的五个新指令集目的也是为了让编程者可以进行更灵活的数据访问和操作。在Shader Model 5.0中,Shader进行了类型的统一,除了4.0版本中就已经有的Vertex Shader、Pixel Shader、Geometry Shader外,还增加了Hull Shader、Compute Shader、Domain Shader三种新的Shade。

DirectCompute11(计算着色器)
  无论是AMD还是NVIDIA都在推动GPU的通用计算技术,目前GPU通用计算已经有CUDA、ATI Stream以及OpenCL三种开发接口。实际上微软也有自己的GPU通用计算API,称之为DirectComputer,但是在DirectX11以前却很少被提及,实际上在以前这个技术的功能也确实比较弱。在DirectX11中,DirectCompute11被微软进行了大量的改进。

  DirectCompute11对GPU通用计算的使用非常广泛,像图像处理和滤波、OIT、阴影渲染、物理加速、人工智能、光线跟踪等等都是通过DirectCompute11来实现的。在最新的操作系统Windows7中,微软声称通过DirectCompute11可以实现借助GPU的计算能力实现视频、音频的快速编码、解码以及对文件系统的快速搜索和扫描。实际上通过我们前期对Windows7的评测,我们已经感受到了这项技术的强悍,Windows7自动硬解码等功能都是通过这项技术来实现的。

Tessellation(镶嵌式细分曲面技术)
  Tessellation技术是DX11的关键特性之一,该技术与AMD有着密不可分的关系,可以说Tessellation是AMD经过多年的改进与完善而来的独门绝技。事实上,从AMD第一代DX10核心R600(Radeon HD2900XT)开始,Tessellation就是显卡中的一个特殊功能,从HD2000系列开始到如今的HD4000系列,AMD的每一款DX10显卡都支持这项技术。当然,这不代表NVIDIA就无法使用Tessellation,在这项技术成为DX11的标准后,未来NVIDIA的DX11显卡也将支持这项技术。从技术角度简单而言,Tessellation就是把一些粗糙的几何模型图形分成很多更小的图形,从而实现更细致的几何模型。

  Tessellation可以让某一图形变成立方体,并通过旋转让其从底部看起来像是个球形,这样的话将节省直接生成多边形所消耗的大量GPU资源。在DX11中,Tessellation和过去AMD显卡中的技术应用稍有区别,微软在DX10中,增加了Hull Shader (外壳着色器)和Domain Shader (域着色器),专门用于协助Tessellation模块工作。实际上在DX10时代,很多游戏都支持AMD的Tessellation技术,而在这项技术成为DX11标准后,未来将有更多DX11游戏显示出这项技术的优势。

Texture Compression(纹理压缩)
  每一代DirectX都会强调在纹理压缩方面的改进,丰富的纹理细节对于最终图像的质量非常重要,目前的游戏纹理细节都朝着精细发展。但是,过大的纹理非常占用显存以及带宽,而纹理压缩就是将较大的纹理以一种优化的算法进行压缩。而这次DX11所带的最新的纹理压缩技术,主要是可以支持HDR。DirectX 11加入了两种新的压缩算法:BC6H和BC7。其中,BC6H是专门针对HDR图像设计的压缩算法,压缩比为6:1;而BC7是专门给高品质RGB纹理设计的压缩算法,压缩比为3:1。采用这两种技术,不但能画质和纹理细节不会有太大的损失,同时也能大大降低显存的消耗。