[ATi X1900系列简介二:构架与技术篇]
[X1900的像素渲染架构]
X1000系列的GPU设计是把算术操作和纹理操作份分给不同的处理单元,算数操作交给像素处理器中的一组ALU完成,纹理则由专门的纹理单元完成,针对像素处理器,每一个时钟周期可以处理1——5条任意的渲染指令,专门的分支单元还拥有额外的多线程处理能力;至于纹理单元,每一个纹理单元可以在一个时钟周期内处理4个纹理拾取操作。所有这些单元都由超线程任务指派处理器来分配任务,这个任务分配器会经常重新派指令给各处理单元,让他们常常处于满负荷状态。
GPU要适应现在和未来游戏的关键点在于改进像素处理的速度,X1900在这一点最值得骄傲的是拥有48个像素处理器的巨大像素能力,算数能力达到了以前旗舰级产品的3倍,算数处理比纹理处理的比率为3:1,是兼顾目前与未来的完美比例。
[阴影渲染加速和Fetch4技术]
单阴影的实现过程很简单,就是先用光源投影来照射整个3D场景,得到的是一张被光源投影过的纹理样本图,每一个像素点用此样本图核实,如果有任何物体在此像素点和光源之间,那么此像素是阴影的,反之则是正常照射的。
要注意,这样创造出来的是一个轮廓极其鲜明的硬阴影,和自然界中的情况完全不符合,我们日常看到的阴影都是软边界的,具有复杂的过渡渐变,改进这个效果的一般方法是使用阴影过滤,实际上就是进行多次光源投射(编者:这个步骤,如果读者学过光学,就是模拟自然界中光的反射和衍射现象,实际上真实的阴影效果也就是这么来的,如果没有反射和衍射,我们在自然界中看到的也会是硬阴影),然后把多次投射样本效果混合到每个像素渲染处理中,样本数越多,效果就越真实,对GPU的处理能力负担越大。
动态分支机构可以只处理阴影边缘的样本混合工作,这样可以极大地提高阴影绘制的速度,X1900使用某种阴影样本过滤器来确定哪些点处于过渡边缘,这些点将被混合的样本渲染处理,而中心的点就可以用单样本纹理过滤渲染,这个方法在提高阴影效果的同时极大地减低了成像时间。
最大化这项技术就产生了fetch4,一个新的纹理样本过滤器,它由4个组成部分红、蓝、绿和透明度组成,具体细节颇为复杂,结果就是ATi认为这样可以用4倍于单一纹理过滤器的效率完美兼顾质量和速度,使得X1900可以用接近传统硬边阴影的速度生成高质量的软边阴影。
在X1900中,Hyper-Z的容量比X1800增大了50%。我们知道,Hyper-Z可以检测出最终成像时不会显示的像素,这样就可以在渲染前丢弃它们,Hyper-Z技术要求在芯片中提供一个高速缓存(编者:这是因为Hyper-Z是靠比较X—Y相同像素的Z值优先级,因此需要建立一个Z值索引)和一定的记忆体。使用大于2M甚至更多像素的高清晰显示正迅速普及,经常能看到1920*1200直到2560*1600分辨率的游戏设置,这时要描绘的分辨率所需记忆体容量一旦大于芯片能提供的记忆体容量,Hyper-Z就会开始降低渲染品质。通过集成更多的Hyper-Z记忆体,X1900可以保证在分辨率进一步提高的情况下不会引起画质急剧下降。
X1900如此强大的能力对于PC用户确实很新颖,但是早在ATi为微软的Xbox360设计的图形引擎上就已经使用了48个渲染处理器+16个纹理处理器。当然其中有一些不同(比如,Xbox360的渲染处理器没有像素和顶点的区别),但是这两个平台的体系一致性,使得游戏开发者不用花费特别的精力,就可以实现跨平台操作,这在以前的PC game和TV game泾渭分明的时代是无法做到的。