● DirectX 11关键技术回顾(一)
● Tessellation技术简析
Tessellation又可译作拆嵌式细分曲面技术。Tessellation主要是靠GPU内部的一个模块Programmable Tessellator(可编程拆嵌器)来实现的。能够根据3D模型中已经有的顶点,根据不同的需求,按照不同的规则,进行插值,将一个多边形拆分成为多个多边形。
而这个过程都是可以由编程来控制的,这样就很好的解决了效率和效果的矛盾。 Tessellation能自动创造出数百倍与原始模型的顶点,这些不是虚拟的顶点,而是实实在在的顶点,效果是等同于建模的时候直接设计出来的。
两种全新着色器来全力配合Tessellator的工作
Tessellation技术最初主要被用以“细分曲面”,随着该技术被纳入DX11范畴,得到大范围推广之后,插值顶点的算法也越来越多,因此用途也越来越广,产生了很多非常有创意的应用。Tessellation技术还经常与Displacement Maps(贴图置换)技术搭配使用,从而将平面纹理贴图改造成为具有立体感的几何图形,大大增强3D模型或场景的真实性。
除了大幅提升模型细节和画质外,Tessellation最吸引程序员的地方就是:他们无需手动设计上百万个三角形的复杂模型,只需简单勾绘一个轮廓,剩下的就可以交给Tessellation技术自动镶嵌,大大提高开发效率;而且简单的模型在GPU处理时也能大幅节约显存开销,同时大幅提升渲染速度。
● Compute Shader助力图形渲染
微软在DirectX 11引入了DirectX Compute概念,实际上这个概念在以前就存在不少应用。DirectX Compute在通用计算领域的增强,进一步提升了GPU通用计算的动能。OpenCL是GPU通用计算的API标准,它提供了并行计算API和一个扩展的编程语言,DirectX Compute增强了GPU通用性能,但由于重点不同,它与OpenCL完全不是竞争关系,反而进一步增强了OpenCL的实用性——DirectX 11提升GPU通用性能,基于OpenCL的通用计算程序将更富效率。
Compute Shader技术最常见用于处理景深
DirectX Compute概念包括了我们下面即将介绍的Compute Shader技术,实际上我们可以理解为它们是一种技术,两种称谓方式。所以下文我们直接称呼这种让GPU通用计算来辅助图形处理的技术为Compute Shader技术。
GPU是图形处理器,以往的GPU通用计算需要程序员先将资料伪装成GPU可识别的图像,再将GPU输出的图像转换为想要的结果,而通过DX11中的Compute Shader通用计算,任意类型的数据(即使是非图形数据)都可以直接进行计算,而且不受图形渲染流程的束缚,可以随时写入写出,GPU通用计算的效能提高了很多。