什么是Shaders?
Shaders其实是一段象素或顶点的着色程序。因此一般而言,shader程序有两大类:象素着色程序和顶点着色程序。这些程序包含了特殊的效果,能够作用到基本的几何对象上。例如:一个包含水状特征的着色程序,应用到蓝色贴图上,就会形成水纹效果;同理可知,一个包含玻璃状特征的着色程序,应用到一个多边形中,就会产生透明。依此类推,不一而同。
正是由于着色程序的广泛使用,才使得今天的游戏画面,比3、4年前要丰富逼真的多。另外因为所有的着色程序都是可编程的,因此游戏开发人员能够通过自己加工,在游戏中实现各种各样,极具个性的画面。而NVIDIA和ATI公司也为各自的产品提供了优化后的着色程序标准库,从而方便程序员的调用,减轻了开发的负担。

不同版本之间的Shader Modal也有所不同。最大的差别在于,所允许的着色程序长度在不断增加,着色程序的长度也就是能够被执行的指令数量。最开始的Shader Modal1.1规格显得还比较简陋,在撰写代码的时候非常严格,同样提供的语句也较少。到了Shader Modal2.x,程序员可以使用循环语句来避免编写重复的代码。
到了Shader Modal3.0就允许程序员使用if-then这样的条件语句。因此随着版本的变迁,程序员所编写出来的着色程序可以更加小巧。而各个版本之间的技术变迁亦十分平滑,只有2.x和3.0规格前后变化较大,后者增加了顶点贴图查询功能,能够使用置换贴图。
虽然Shader Modal软件规格在不断的修订发展,不过显卡厂商对新技术的支持却不尽相同。相比而言,硬件厂商的应用技术的策略,更多的受到市场因素的左右和影响。而急于推出带有最新技术的产品,也会伴随着相应的风险。例如:NVIDIA当前支持Shader Modal3.0的硬件就伴随着大量的噪音,而且新产品售价偏高。
正因为如此,市场上超过半数的显卡都还不能够运行Shader Modal3.0的程序。游戏开发人员也就不会冒冒然采用新技术,当然那些想要标新立异,引领潮流的游戏公司自然会成为新技术探险的先行者。例如现在已经能够看到采用Shader Modal3.0的游戏—Far Cry(孤岛惊魂),采用Shader Modal3.0中提升渲染速度的技术来改善性能。
由于Shader Modal3.0中有多项技术旨在改进性能,因此运行在2.x规格下,比较吃力的着色程序,在3.0中会得到较好的性能表现。后来Far Cry发布了一个补丁,来支持HDR光源(高动态范围光源),这就是3.0所特有的技术了。