在DirectX10的图形流水线系统中,最大的结构变化是在几何处理阶段增加了几何着色器。几何渲染单元附属于顶点渲染单元,但不像顶点渲染单元那样输出顶点,而是以像素为处理对象。
图元比层次结构中的顶点高一级,它由一个或多个顶点组成。由一个顶点组成的图元称为点,由两个顶点组成的图元称为Line,由三个顶点组成的图元称为三角形。几何单元支持点、线、三角形、带有相邻点的线、带有相邻点的三角形等。它一次最多可以处理六个顶点。有了丰富的图元类型支持,几何渲染单元可以让GPU提供更精细的模型细节。
几何渲染单元赋予GPU创建新几何对象和向场景添加内容的神奇能力。的灵活处理能力让GPU的用途更加广泛,很多过去必须由CPU完成的任务现在都可以由GPU来处理。这样CPU就有更多的时间来处理人工智能、寻址等工作。更令人惊讶的是,几何渲染单元还可以更容易地添加物理 *** 作。DirectX10可以创建具有物理特性的盒子并模拟刚性物体,物理 *** 作有望在其主导下逐渐普及。可以预见,在几何渲染单元这一武器的帮助下,显卡的性能将会有质的飞跃,我们也将体验到速度更流畅、画面更精美、剧情更细致的游戏。
提高了API和驾驶员效率
我们知道,每个游戏角色、武器和场景都是3D程序中的一个对象,每个游戏画面中可能会出现数百个对象。显卡工作时,每一个对象都要从应用程序传到API接口,再通过显卡驱动到达显卡。在现有的DirectX系统中,任何对象 *** 作或渲染都会导致系统资源的额外消耗。游戏中物体越多,传输时间越长,额外消耗越多。据统计,现有的DirectX9图形芯片只有60%的性能用于计算3D程序,其余40%的计算能力被浪费了!
为了改变这种情况,DirectX10在渲染程序中采用了动态索引功能,对象由驱动程序自动加载,数据可以分类连续输入。这样一来,单次传输的数据量就增加了,从而大大减少了额外的时间。通过引入新的API和驱动程序,DirectX10将图形芯片的执行效率提高到80%。在不增加显卡硬件成本的前提下,大幅提升了显卡的性能。
并行发动机支持技术
为了提高多显卡协作的工作效率,微软提出了在DirectX10并行引擎支持它可以将两个GPU所需的数据提前传输到对应的两个GPU,帧渲染会完全由驱动控制和分配,让两个显卡的工作强度得到很好的平衡。但在目前主从卡的 *** 作模式下,主卡要判断从卡帧和渲染量。引入并行引擎支持技术后,主从卡的概念将会消失,两个甚至更多显卡的协作力量将会得到充分体现。
统一渲染架构
DirectX10最大的创新是统一着色器架构。目前各种图形硬件和API都采用分离渲染架构,即顶点渲染和像素渲染独立进行。前者的任务是用3D坐标信息构造多边形顶点,后者的任务是将这些顶点从3D转换到2D,从而通过视觉欺骗的方式显示在屏幕上三维现场。相应的,GPU中也有专门的顶点渲染单元和像素渲染单元来分别执行这两个任务(由于工作量不同,这两个渲染单元的数量并不相等,顶点渲染单元通常只有像素渲染单元的1/3~1/2)。在过去的几年中,这种分离的设计为计算机图形学的发展做出了一定的贡献。
然而,微软认为这种单独的渲染架构不够灵活。不同的GPU有不同比例的像素渲染单元和顶点渲染单元。软件开发人员在编写代码时必须考虑这个比例,这就大大限制了开发人员可以自由发挥的空空间。此外,不同的图形游戏或软件对像素渲染和顶点渲染的要求不同,导致GPU的计算资源利用不足。因此,微软在DirectX10中提出了统一渲染架构的思想:在同一物理类型的渲染单元上执行不同类型的渲染程序。换句话说,只使用一个渲染单元,这样它就可以完成顶点渲染,像素渲染,甚至几何渲染。这样可以最大限度的利用渲染单元,减少资源闲置的情况。目前Xbox360的显示芯片Xenos采用的是统一渲染架构。该芯片共有48个渲染单元,均可用于顶点渲染或像素渲染,没有固定的分配比例。此外,ATI还打算在新一代R600芯片中采用统一渲染架构。
当然,统一渲染架构并不完美。与顶点渲染相比,像素渲染会面临大规模使用纹理带来的材质延迟,这是统一渲染架构亟待解决的问题。不过有一点可以肯定,在微软的大力推动下,统一渲染架构是大势所趋。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)