快讯

真DX11架构 Tessellation技术深度解析

2010-07-29 00:06  出处:PConline原创  作者:XP   责任编辑:liujie 

第7页:Tessellation技术详解——NVIDIA篇

    与ATI的设计思路不同,NVIDIA在GF100上花费了大量的精力以及时间进行研发。为了加强Tessellation的性能表现,NVIDIA甚至将第一版的GF100设计产品推翻重来,为的就是设计出一款DX11性能强劲的产品,而并非在DX10产品上进行小改动就发布。

◆ GF100架构总览

    从NVIDIA的首款统一架构的G80开始,到今天的GF100产品,这已经是NVIDIA第三代统一架构产品。与第一代、第二代产品的小幅改进不同的是,第三代GF100统一架构产品为了迎合DX11的特性,在整体设计方面进行了较大幅度的调整,我们可以通过下面的架构图来看出:

2

 

在GF100核心当中,共包括4组GPC部分,每组GPC又包括四个Streaming Multiprocessors(流式多处理器阵列,简称SM阵列),而每个SM阵列当中又包含了32个Core(NVIDIA称之为CUDA Core,CUDA核心)。在每个GPC当中,NVIDIA都增加了一组全新的Rester Engine(光栅引擎)。而在每组SM当中,NVIDIA还增加了同样全新设计的PolyMorph Engine(多形体引擎,执行曲面细分的主要单元)。Rester引擎以及PolyMorph引擎实际上是NVIDIA对GF100核心架构做出的最大变化,这两个部分也是让Tessellation性能得到大幅提升的最主要原因。

◆ PolyMorph引擎

    PolyMorph Engine(多形体引擎)当中包括了五个主要部分,分别为:Vertex Fetch(顶点获取)、Tessellator、Viewport Transform(视口转换)、Attribute Setup(属性设定)以及Stream Output(流输出)。

 

    PolyMorph引擎执行步骤:

  1. 从一个全局顶点缓冲区中获取顶点,随后发送至SM,以进行顶点着色以及外壳着色。将每个顶点从物体空间转变成了世界空间(本页第一幅图片最左边的形态),而且还算出了Tessellation所需的参数(例如Tessellation系数,简单理解就是:将一个三角形重新划分为多少个三角形)。Tessellation系数(或LOD)被发送至Tessellator。
  2. PolyMorph引擎重新在SM当中读取Tessellation系数。Tessellator将修补面(控制点网格所定义的光滑表面)分成三角形并输出许多顶点。修补(u、v)值定义了网格以及形成网格的连接方式。全新的顶点再次发送至SM,域着色器(Domain Shader,简称DS)与几何着色器(Geometry Shader,简称GS)均在这里执行。DS能够根据外壳着色器(Hull Shader,简称HS)与Tessellator的输入来运算每个顶点的最终位置(本页第一幅图片中间的形态)。在本阶段中,通常会附上一个Displacement Mapping(贴图置换)以提升修补面的细节表现。几何着色器能够执行任何后期处理、按需增加或删除顶点以及基元。
  3. PolyMorph引擎会执行视口转换以及视角校正。
  4. 接下来就是属性设置,把后期观察口顶点属性转变成了平面方程,以进行高效的着色器评估。
  5. 将顶点“流出”至存储器,使其能够用于更多处理。

    PolyMorph引擎的执行大致分为这五个阶段,并且每一个步骤完成之后,都会交由SM进行处理,处理完毕,结果将自动进PolyMorph引擎的入下一个流程处理,当五个步骤全部执行完毕,就会交给下面的Raster引擎。由于PolyMorph引擎的大幅增加,更好的避免了Core的空载现象,从而大幅提升显卡的执行效率。

键盘也能翻页,试试“← →”键
IT热词搜索 来源:360新闻