首页 > 范文大全 > 正文

大一统的时代

开篇:润墨网以专业的文秘视角,为您筛选了一篇大一统的时代范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

澶染引擎(Shador)的作用

在Shader出现之前的渲染中,很多任务需要CPU来辅助完成,比如生成顶点。渲染引擎的出现,可以作为3D处理历史上的一次变革。渲染引擎是如何独立工作的呢?来看看下面这个简单的示意图吧。

顶点作为一个3D模型的骨架,越细密表现就越接近真实。在顶点处理中,常常采用近似的方法,比如圆是以多边形来表示的,一般使用五边形、六边形等等,当然边数越多则越接近标准的圆。顶点渲染引擎的作用就是生成这些多边形或者三维模型顶点,并将整个物件的框架勾勒出来。顶点渲染引擎极大地解放了CPU的任务,使得原本由CPU做的顶点工作由自己完成,这样CPU就可以处理其他相关的任务,比如AI计算等。

顶点处理完成之后,需要经过一个Setup的过程。Setup引擎可以将空间的三维坐标转换为屏幕上可以显示的二维,同时剔除那些被遮挡的部分。接下来就是像素渲染过程:像素渲染确定每一个需要计算的像素的颜色、光照情况,并且根据设置决定是否进行HDR等高强度的浮点运算。在这里,还应根据需要对物体表面进行纹理贴图,使它看起来栩栩如生。纹理贴图可能进行多次,以更强地表现物体的表面效果。早期的像素渲染引擎对于像素的运算处理和纹理贴图的处理量基本相当,而近来由于HDR、SoftShadow等技术的应用,加大了像素处理的强度,同时纹理有所减弱。最后再经过ROP等处理步骤,就可以得到我们在显示器上看到的图像了。总的来说,像素渲染和顶点渲染都解放了CPU,极大地提高了我们计算机系统的运作效率。

为什么需要统一

显卡从DirectX 8开始,进入顶点渲染引擎(VertexShader)和像素渲染引擎(Pixel Shader)的时代。顶点渲染和像素渲染各司其职,同心协力地完成了对3D画面的运算和处理。

但俗话说:分久必合。在分引擎渲染取得极大成功之后,像素和顶点渲染的问题也暴露了出来。传统的像素顶点分开渲染的模式造成了GPU的资源分配不均衡。最为典型的表现就是:在顶点渲染忙碌的时候(比如大量的草地、树叶场景),像素渲染引擎却吃不饱;反之,在遇到如水面、复杂光线运算等场景的时候顶点渲染引擎往往没有事情干。

对于一个处理器而言(这里专指图形处理器),工作状态下全部晶体管都处于忙碌才能得到高效率。而统一渲染架构之前的分离渲染架构GPU已经难以适应目前技术的发展――这一点也可以从顶点渲染引擎和像素渲染引擎的数量比上来看出:从早期DirectX 8时代的1:1,到DirectX9的1:2,再到如今的1:3。我们的设计总是偏向于像素引擎,但是仍然满足不了需要。如果在恰当的时候,顶点渲染引擎也可以加入像素渲染的处理,无疑对整4-GPU的效率有极大的提高,同理,在一些草木丛生的顶点复杂场景,像素渲染引擎可以加入顶点处理,我们也不用眼看着像素处理引擎无事可做了。

在其他方面,由于分离架构专门为3D处理而设计,使得通用性大大下降。我们上文中叙述GPU中资源调配不平衡,造成了浪费。实际上在整个计算机系统中,GPU往往拥有最强的浮点运算能力。但除非进行3D处理,否则它很难表现出来。并且在一些要求强大浮点运算的场合,由于GPU通用性不够,我们只能使用大量的CPU来集成运算,效能相当低下。并且就算在3D处理中,如果速度足够快(比如平均帧数在100帧以上的时候),多余的运算能力完全可以解放出来处理音频、AI、物理效果。但是目前的分离架构做到这一点非常困难。这也是我们看到很多关于这方面的设想但最终无疾而终的原因。

在实际应用中,统一渲染架构将使用ALU(算术逻辑引擎,也称流处理器)来替代我们熟悉的VS和PS。每一个流处理器可以支持任何类型的运算,如顶点、像素、纹理、几何处理,甚至AI和物理处理。它是系统的多面手,也是系统性能提升的关键。在这种类似于CPU设计的无差别流处理器上,我们可以有效地提升GPU的处理效率,并且使其通用性大大加强。

统一渲染架构有哪些好处?

统一渲染架构的出现,不仅改变了图形处理的分离模式,给整个图形业界带来了深远的影响,并再次释放了CPU的压力。在统一渲染架构的基础上,配合优秀的API,我们可以继续提升画面的效果,使得3D图形处理更接近现实情况。

在软件编制上,统一渲染架构降低了程序编制难度。早期的3D编程非常晦涩难懂,并且存在各种各样莫名其妙的限制。程序员不得不在编制的时候花相当多的时间来权衡利弊。在SM2.0、3.0出现后,这种情况得到了极大的缓解,并且由于可编程能力的提高,顶点和像素编程在很大程度上出现了通用的可能――但由于分离架构限制,我们仍然需要为它们单独编制。统一渲染架构打破了这些条条框框,程序员不再需要为每一种处理引擎编写程序,他只需要编写一个总的、限制很少、自由度很高的程序,GPU会自动调配资源进行处理。

在3D程序运行上,如上文所说,使用流处理器替代了VS和PS之后,在各种3D场景计算中可以作出更加灵活的处理。如在顶点密集型运算中,全部流处理器都可以加入顶点运算,然后将数据再次进行像素或者纹理操作。引擎闲置等候工作的情况将再不会出现在统一渲染架构当中。

在其它方面,由于流处理器的加入,我们可以更加灵活地使用显卡的强大运算能力,如物理加速、利用显卡的强大浮点运算能力进行通用处理计算等等。统一渲染架构中使用的流处理器除了能大幅度提升显卡的工作效率以外,还可以带给显卡前所未有的自由性,或许GPU很快就可以发展成为机箱中的另外一个处理中心――不仅仅是3D图形,音频、科学计算、AI、物理效果,它都可以完成。GPGPU的理想或许在统一渲染架构下将很快成为现实。

统一渲染架构不会遥远

从NVIDIA GeForce 8800系列上,我们第一次看到了高端统一渲染架构GPU带来的性能飞跃。同样采用统一渲染架构的主流产品――GeForce 8600/GeForce 8500系列让我们看到了统一渲染架构的高效率(GeForce 8600内置32个流处理器,GeForce 8500仅仅为16个流处理器,结构上比前一代同档次的GeForce7900、GeForce7600、GeForce7300精简了很多,但却有达到甚至超过前一代产品的性能)。AMD新一代的HD系列产品在性能提升的前提下,更是拥有了强大的硬件解码能力。统一渲染架构将给我们带来更强大的运算能力以及灵活使用这些处理能力的方法。在统一渲染架构成熟后,GPU强大的浮点运算能力将更好的为我们服务,而不是像现在那样藏在机箱的深处,仅仅进行3D的处理。在大一统时代来临之时,我们将得到更加丰富多彩的,接近真实的技术体验,让我们拭目以待吧!