● Shader单元概念形成,GPU开始走上“邪路”
面向图形计算,让GPU逐渐找到了自己的方向,这个方向就是给予用户更真更快地视觉体验,但是GPU架构也遇到一些问题亟待解决。首要问题就是,要实现更加复杂多变的图形效果,不能仅仅依赖三角形生成和固定光影转换。
虽然当时游戏画面的提高基本上都是通过大量的多边形、更复杂的贴图来实现的。但是后期发展中,顶点和像素运算的需求量猛增。每个顶点都包含许多信息,比顶点上的纹理信息,散光和映射光源下表现的颜色,所以在生成多边形的时候带上这些附加运算,就可以带来更多的效果,但这也更加考验顶点和像素计算能力。研究人员发现,同硬件T&L仅仅实现的固定光影转换相比,VS和PS单元的灵活性更大。
可编程模型与旧有的预定义模型是不同的。这种模型中,数据是透过virtual machine以一个类似于带有特殊汇编指令集的pre-arranged(事先安排好)程序进行处理的,程序员可以直接对其进行编程。
凭借可编程几何管线和可编程像素管线,使用者可以自由的控制几何和像素的代码设计。这对于图形开发者是空前的,他们可以通过基本的着色器,利用开发工具,产生全新的、极具创造力的效果。也正是可编程管线的引入,为GPU发展翻开了新的篇章,GPU开始向SIMD处理器方向发展,凭借强大的并行处理性能,使得GPU开始用有了部分流式处理器特征。
UT2003已经模拟出比较真实的场景
Shader概念的提出,意味着程序员可通过它们实现3D场景构建的难度大大降低。通过VS和PS的渲染,可以很容易的宁造出真实的水面动态波纹光影效果。此时DirectX的权威地位终于建成。
Pixel Shader(顶点着色器)和Vertex Shader(像素着色器)硬件逻辑,真正支持像素和顶点的可编程。虽然当时可编程性很弱,硬件限制太多,顶点部分出现可编程性,像素部分可编程性有限。但这的确是硬件T&L之后PC图形技术的又一重大飞跃。3D娱乐的视觉体验也因此向接近真实迈进了一大步,波光粼粼的水面是那个时期用于演示Shader能力的典型DEMO,相比之下DirectX 7绘制的水面效果就单调得多。
Shader单元概念提出之后,无论NVIDIA还是ATI,都在做强显卡前端(Setup Engine及其相关部分,如光栅器Rasterizer、设定Setup和顶点装配器Vertex Assembler)的同时,逐渐将竞争重点放在显卡核心部分——Pixel Shader(顶点着色器)和Vertex Shader(像素着色器),无论是Radeon 8500还是Geforce Ti 4200都内置的规格和频率更强的PS和VS单元。同时显卡的后端ROP(光栅化引擎,负责完成像素的输出)也逐渐强大,各种各样的多重采样AA模式和更高的抗锯齿模式逐步得以实现。