DX11最重要组成部分:Tesselation
● Tesselation
Tessellation技术最早由ATI倡导,早在DX9C时代,微软XBOX360游戏主机中由ATI设计的Xeno显示芯片就已经开始支持这项技术,从DX10时代到DX10.1时代,ATI HD2000/3000/4000系列显卡全都整合了一个叫做Tessellator的模块,但由于当时该技术并不成熟,而且GPU性能有限,导致该技术一直没能得到游戏厂商的广泛认可。
微软在DX11中专门加入了辅助Tesselation的模块——Hull shader&Domain shader
直到DX11时代,GPU自身的性能有了长足的进步,硬件上真正具备了细分曲面的实力,再加上微软重新改写API渲染流程,专为Tessellation开辟了新的着色器,这才让Tessellation技术得以重见天日。
Tessellation这个英文单词直译为“镶嵌”,也就是在顶点与顶点之间自动嵌入新的顶点。Tessellation经常被意译为“细分曲面”,因为在自动插入大量新的顶点之后,模型的曲面会被分得非常细腻,看上去更加平滑致密。上图就非常形象的反映出Tessellation技术的原理和所实现的效果。
Tesselation的用途非常广泛,比如取代虚假的视差映射贴图技术、生成物体运动的物理效果、流体的运动效果等等。上面这张图片就是Tesselation最典型应用——细分曲面、取代视差映射贴图。
除了大幅提升模型细节和画质外,Tessellation最吸引程序员的地方就是:他们无需手动设计上百万个三角形的复杂模型,只需简单勾绘一个轮廓,剩下的就可以交给Tessellation技术自动镶嵌,大大提高开发效率;而且简单的模型在GPU处理时也能大幅节约显存开销,同时大幅提升渲染速度!
微软GPU通用计算技术:DirectCompute
● DirectCompute
在windows7发布之后,我们就经常提到了Direct Compute这项技术,简单的说,Direct Compute就是微软开发的GPGPU通用计算接口,欲统一GPU通用计算标准,正面与OpenCL对抗。
虽说DirectCompute标准才刚刚问世,但目前已经有了三个版本,它与微软的DirectX版本是一一对应的(10.0、10.1、11.0),毕竟DirectCompute目前还只是DirectX的一个子集,羽翼未丰之前难以自立门户。DirectCompute是与DX11一同发布的,因此相比“过去式”的10.0版,DirectCompute 11作出的改进比较多:
可以看出,同DX11类似,DirectCompute 11的改进主要集中在降低系统资源开销与提高效能方面,也就是说新的DX11显卡会有更强的通用计算效能。而旧的DX10显卡虽然会慢一些,但实现的功能也不会差多少,如此一来就完美的解决的兼容性问题,也能很好的凸出新显卡的优势,用户和厂商皆大欢喜。
DirectCompute在图像画质方面也有很多应用,比如顺序无关透明、电影级景深特效、高清晰环境光等等,上图就是在《地铁2033》游戏中利用Direct Compute实现的景深特效。
最先进的指令集:Shader Model 5.0
● Shader Model 5.0
Shader(译为渲染或着色)是一段能够针对3D对象进行操作、并被GPU所执行的程序,ShaderModel的含义就是“优化渲染引擎模式”,我们可以把它理解成是GPU的渲染指令集。历代DirectX每逢重大版本升级时最主要的更新内容就包括在了ShaderModel之中:
ShaderModel 1.0 → DirectX 8.0
ShaderModel 2.0 → DirectX 9.0b
ShaderModel 3.0 → DirectX 9.0c
ShaderModel 4.0 → DirectX 10
ShaderModel 5.0 → DirectX 11
高版本的ShaderModel是一个包括了所有低版本特性的超集,对一些指令集加以扩充改进的同时,还加入了一些新的技术,现在我们就来看看DX11 SM5.0都有哪些新特性:
由于统一渲染架构的特性,Shader Moder 5.0是完全针对流处理器而设定的,所有类型的着色器,如:像素、顶点、几何、计算、Hull和Domain(位于Tessellator前后)都将从新指令集中获益。
其中,覆盖采样及Gather4纹理拾取两项指令是从在DX10.1基础上发展而来的,SM5.0要比SM4.1更加智能和灵活,它可以针对特定颜色分别采样、还能自动识别可做阴影映射的值,精度和效率都进一步提高。
由于DX10.1与DX10在指令方面的相似性,现有的DX10.1游戏可以很容易的通过更新程序代码升级支持DX11,从而获得更好的运行效率,比如《BattleForge》和《STALKER》这两款DX10.1游戏率先对DX11提供了支持。
表情