MCPLive > 杂志文章 > 零距离接触NVIDIA GF100

零距离接触NVIDIA GF100

2010-02-25撒哈拉《微型计算机》2010年2月上

几何性能大幅度提升

在游戏画面的生成过程中,我们一般看到的是3D画面的贴图,但是隐藏在贴图里面的还有3D画面的骨架——几何构图。3D画面的形成首先要构建几何构图,然后再进行渲染。在这之前,3D显卡的几何性能的提升过程是非常缓慢的,从GeForce FX 5800到GeForce GTX 285,显卡的像素渲染能力提升了超过150倍,但是几何性能仅仅提升了不到3倍。这源于API一直没有提供对几何构图的支持,DirectX 9和DirectX 10都不能通过GPU来创建几何图形。而在DirectX 11时代,GF100显卡和API提供了新的几何处理的功能——Tessellation,使得GF100拥有了相对GT200显卡超过8X的几何性能提升。

Tessellation如何工作

Tessellation是DirectX 11的重要特性之一,它的中文名称为镶嵌细分曲面技术。3D画面是由无数的三角形组成的,Tessellation技术可以在原本的三角形画面的基础上,再细分出无数的小三角形,然后再叠加位移贴图,如此一来得到细节更加丰富的画面。

Tessellation技术可以在极小的显存占用之下,生成原始模型的三角形顶点,接着通过特殊算法,在三角形之中自动拆分出更多的三角形,使得画面的精细程度得到提升。整个过程只需简单勾绘一个轮廓,剩下的就可以交给Tessellation技术自动拆嵌,大大提高效率。从而在节约显存开销的情况下,创造更多数量级的顶点,提升渲染速度。

在DirectX 11中,Tessellation的具体工作过程是如何的呢?在整个画面的形成过程中,首先是顶点着色器建立图像的顶点,然后经过修订后进入控制点的过程。控制点包括外壳着色(Hull Shader)、细分曲面(Tessellator)和域着色器(Domain Shader)三个阶段,在重点的Tessellator前后分别是外壳着色器和域着色器。外壳着色器将确定采用何种方法进行曲面细分,同时明确各控制点。接着在Tessellator里,根据外壳着色器确定的系数拆分曲面。后,在域着色器将贴图(u,v)坐标转换为(x,y,z,w),根据控制点或置换贴图的参数来控制这些新产生的点如何转移或坐标位移。每处理完一个点后,域着色器就会输出一个顶点,再进一步交由几何着色器来处理。

在下面的两幅图片中,我们可以看到没有经过Tessellation的图片,水面和岩石都非常平整,显然不够真实。而在经过Tessellation之后,画面的细腻程度得到了增加,特别是水面的拥有了涟漪感,山峰的岩石表面更加凹凸不平。


原始画面


经过Tessellation处理后的画面

那么,要实现Tessellation功能,GF100在硬件上做出了哪些改变或者进化呢?这主要是通过PolyMorph引擎和Raster引擎实现的。它们是GF100显卡中的特殊硬件,PolyMorph引擎主要完成世界空间的处理,完成顶点拾取、Tessellator、视点变换、属性设置和stream输出。而Raster引擎则完成屏幕空间处理,包括边缘设置、光栅、Z-Cull。以上两个部分的硬件就是GF100几何性能提升的关键。GF100总共包含了16个PolyMorph引擎和4个Raster引擎。每个SM包含一个PolyMorph引擎,每4个SM拥有一个Raster引擎。这些硬件上的设计,让GF100在进行Tessellation操作时,性能下降很少。在测试Demo里,打开Tessellation技术之后,帧率的下降幅度并不明显。

Tessellation性能对比

在GF100的媒体沟通会上,NVIDIA透露了GF100显卡在运行Tessellation测试DEMO时的性能,并对比了ATI的Radeon HD 5870显卡,本刊记者记录下了成绩,让大家对GF100的性能有一个初步的了解。

分享到:

用户评论

共有评论(6)

用户名:

密码: