|
||||
DX10实用技术:DirectX 10的N大实用技术:
统一渲染架构:
实用理由:将渲染单元统一了,大大提供显卡的运算效能
统一渲染架构
DirectX 10最大的革新就是统一渲染架构(Unified Shader Architecture)。DirectX 10之前各类图形硬件和API均采用分离渲染架构,即顶点渲染和像素渲染各自独立进行,前者的任务是构建出含三维坐标信息的多边形顶点,后者则是将这些顶点从三维转换为二维,这样便可以通过视觉欺骗在屏幕上显示出“三维”的场景。与此对应,GPU中也有专门的顶点渲染单元和像素渲染单元来分别执行这两项工作(由于工作量不同,这两种渲染单元的数量不相等,顶点渲染单元通常只有像素渲染单元的1/3~1/2)。有时候这种分离渲染架构不够灵活,不同的GPU,其像素渲染单元和顶点渲染单元的比例不一样,软件开发人员在编写代码时必须考虑这个比例,这就大大限制了开发人员自由发挥的空间。另外,不同的图形游戏或软件对像素渲染和顶点渲染的需求不一样,导致GPU的运算资源得不到充分利用。因此,微软在DirectX 10中提出了统一渲染架构的思想:在相同物理类型的渲染单元上执行不同类型的渲染程序。换句话说,只用一种渲染单元,让它既能完成顶点渲染,也能完成像素渲染,甚至还能实现几何渲染。这样一来,渲染单元可以得到最大程度的利用,减少了资源闲置的情形。统一渲染架构首先应用在Xbox 360的显示芯片Xenos上,该芯片一共有48个渲染单元,它们可全部用于顶点渲染或像素渲染,没有固定分配比例。NVIDIA首先将统一渲染架构应用在G80上,此后AMD也跟随将统一渲染架构应用在R600上,DirectX 10显卡时代也从此开始。