第 1 页:Shader Model 4.0到来
第 2 页:统一渲染架构
第 3 页:Geometry Shader技术
第 4 页:虚拟显存技术
第 5 页:整数指令集&直接存取像素着色帧缓存
第 6 页:增强型图形镶嵌技术
第 7 页:Physics(物理加速)技术
2、统一渲染架构
相对SM4.0,其实在Shader Model 4.0中微软将引入统一着色架构,这才是DX10最大的更进。我们都知道,微软在DirectX 9中引入的了2.0/2.X/3.0三个版本的Vertex Shader(顶点着色引擎)以及Pixel Shader(像素着色引擎)。其中支持2.0版的着色引擎是DirectX 9的GPU的最低标准,而当前主流的显卡 已经都硬件 支持加入了拥有更多高级处理功能的3.0版本着色引擎。不过,即便是DirectX9.0c,对于功能相仿Vertex Shader、Pixel Shader来说,目前图形芯片厂商仍需要在GPU中划分两个区域来存放Vertex Shader阵列和Pixel Shader贴图流水线。这无疑是一种资源冗余,而且这也加重GPU的设计难度及成本。当Direct X10把渲染流程更细分为Vertex Shader、Geometry Shader及Pixel Shader,这个情况将会更为明显。那么,有没有可能把这两者整合在一起呢?答案就是肯定的!
而在DirectX 10中引入了统一渲染架,通过一个整合Vertex Shader、 Pixel Shader的可编程整合光影处理器 来完成目前Vertex Shader、Pixel Shader所有的工作。所谓统一渲染架构,最容易的理解方式就是Shader单元不再分离,显示核心不再为Shader类型不同而配置不同类型的Shader单元,对于主流的显示核心,Pixel Shader单元以及vertex Shader单元的概念都应该已经非常熟悉了,而在统一渲染架构中这两种Shader单元将不再分离,转而所有的Shader单元都可以为需要处理的数据进行处理,不管和是Pixel Shader数据还是Vertex Shader数据。而调配哪几组Shader单元负责处理什么数据或者进行什么样子类型的计算,则由一个被称为small sets of instructions(SSI)的部分来控制。这样在硬件 上,设计者就无需为不同的着色引擎设计不同的执行单元,只要按照所对应的接口以及操作方式全部融为一体,仅设置一种独立的Shader执行单元。这意味着GPU厂家可以用更小的核心来实现现在需要用8000万甚至更多晶体管才能实现的功能!
但由于Vertex和Pxiel Shader在很多时候对系统的需求量是不同的,如何调配不同的Shader单元呢?针对这么问题,在DirectX 10中由一个单元来判定当前需要渲染场景的具体Vertex以及Pixel Shader的计算需求量,而根据这个需求量来分配Shader资源。由于采用统一渲染架构,所有Shader单元既可以处理Pixel Shader数据同时也可以处理Vertex Shader的数据,这样的资源合理利用率要高于普通的分离式Shader单元设计。
统一渲染架构是一项极具创新意义的作法。要知道,在很多时候如果我们处理的一个场景注意是以Pixel Shader计算为主,Vertex Shader计算仅占一小部分的时候,如果采用分离Shader设计的显示核心,就可能存在Vertex Shader计算单元空闲,但Pixel Shader单元过渡计算的现象。同样的也可能存在Pixel Shader数据比较少,但Vertex Shader计算数据过多的问题。这就往往造成了一方面着色单元闲置,另一方着色单元资源紧缺的情况。
比如在《上古卷轴4:埋没》,7900GTX 1600×1200 HDR,FPS仅为14~50帧左右。这是因为独立渲染的草丛或者树叶是由庞大数量的多边形构成,对GPU的顶点渲染提出了严酷的要求,相对来说并不需要太多像素操作,如此一来大规模的像素渲染被闲置而顶点模块处于不堪重负状态。而统一渲染架构则可以帮我们解决硬件资源上的限制----你能够不受限制地使用纹理资源,并可以使用任意长度的着色指令,如果能够将闲置的像素单元用来处理顶点,那么游戏速度就不会如此可怜了!此外,统一渲染架构将令GPU的角色由单纯为Game Rendering提升至Game Computing的理念,Unified Shading引擎设计更适合异类运算工作(Heterogeneous Computing),例如Physics运算、影像编码运算等,让显卡 的应用范畴大幅提升。
其实ATI早在4年前就开始着手图形芯片统一渲染架构设计,比如ATI针对Xbox 360设计的Xenos图形芯片已经采用了Unified-Shader统一着色架构。在PC GPU方面,ATI方面也进行了缜密的安排,以保正旗下图形芯片平稳向DX10统一着色架构过渡。
注:XBOX360图形芯片Xenos核心架构图
比如R5xx当中采用的统一着色化的Ringbus内存 总线,如控制像素单元的多线程“ Ultra-Threading Dispatch Processor ”(超线程分配处理器 )。ATI这种做法将保正在2007年平稳地向R6xx图形芯片过渡,也就是说R6xx系列图形芯在采用统一渲染架构的同时,继续沿用R5xx的显存总线和超线程分配处理器 ,只是在性能上有所改进。
不过,目前NVIDIA方面似乎对统一渲染架构并不感兴趣,据之前多方面的消息表明,NV下一代旗舰G80芯片依然沿用传统的独立着色架构,但硬件规格上还是完整支持DX10,这是怎么回事呢?看来微软DX10似乎默许了G80的这种设计。但无论采用统一渲染架构还是独立渲染架构,DX10规格的GPU必须支持Shader Model 4.0。
上一页 [1] [2] [3] [4] [5] [6] [7] 下一页