知识在于积累,了解得多了就是行家。
Shader Model(在3D图形领域常被简称SM)就是“优化渲染引擎模式”。事实上,Shader(渲染或称着色)是一段能够针对3D对象进行操作、并被GPU 所执行的程序。通过这些程序,程序员就能够获得绝大部分想要的3D图形效果。在一个3D场景中,一般包含多个Shader。这些Shader中有的负责对 3D对象表面进行处理,有的负责对3D对象的纹理进行处理。 早在微软发布DirectX 8时,Shader Model的概念就出现在其中了,并根据操作对象的不同被分为对顶点进行各种操作的Vertex Shader(顶点渲染引擎)和对像素进行各种操作的Pixel Shader(像素渲染引擎)。 时至微软发布DirectX 10.1之后,Shader Model的版本已经有五个版本了:分别是Shader Model1.0(DirectX8.0)、Shader Model2.0(DirectX9.0b)、Shader Model3.0(DirectX9.0c)、Shader Model4.0(DirectX10)和Shader Model4.1(DirectX10.1)。 在Shader Model发展史上,从SM 1.0进化到SM 2.0称得上是真正意义上的技术革命,后者赋予了显示芯片强大的能力,人们在游戏中也领略到前所未有的视觉体验,例如水面光影和雾化等特效的出现使游戏场景更真实。相对而言,SM 2.0到SM 3.0的改进不如SM 1.0到SM 2.0的变化大,SM 3.0除了支持32bit浮点运算是亮点外,其他特效用SM 2.0也可以完成。相比原先的Shader Model 3.0,Shader Model 4.0最大指令数从512条增加到了64000条;临时暂存器数量也从原先的32个增加到惊人的4096个;允许同时对128个Texture进行操作 (Shader Model 3.0只允许16个);材质texture格式变为硬件支持的RGBE格式,其中的"E"是Exponent的省略,是RGB共同的说明,这在HDR的处理上有很大的作用,摒弃了以往需要专门decoding处理HDR渲染的流程。 另外,对于纹理的尺寸Shader Model4.0也有惊人的提升,8192x8192的最高纹理分辩率比原先最高2048x2048的分辩率要高出4倍。 Shader Model 4.0另一个重大变化就是在VS和PS之间引入了一个新的可编程图形层----几何着色器(Geometry Shader)。原来的Vertex Shader和Pixel Shader只是对逐个顶点或像素进行处理,而新的Geometry Shader可以批量进行几何处理,快速的把模型类似的顶点结合起来进行运算。虽然其操作不会象Vertex Shader那样完整,只是处理器单个顶点的相关函数操作,但是这种操作却可以确定整个模型的物理形状。这将大大加速处理器速度,因为其它Shader单元将不再去需要判定数据所存在的位置,而只是需要简单的为特定区域进行操作就可以了。Geometry Shader可以把点、线、三角等多边形联系起来快速处理、同时创造新的多边形,在很短时间内直接分配给其他Shader和显存而无需经过CPU,烟雾、爆炸等复杂图象不再需要CPU来处理。从而极大的提高了CPU速度和显卡速度。游戏图象中可以出现许多精细场景,如不锈钢茶壶上清楚的反射出周围物体、超精细的人物皮肤等 Shader Model是什么意思 Shader Model在PC游戏和显卡的发展史上扮演了非常关键的一个角色,它彻底解放了显示芯片,使得技术人员可以用它去创造接近真实环境的3D世界。换句话说,逼真的场景、细节的毫发毕现、像看电影那样玩游戏已成为现实。无怪乎人们开始把Shader Model版本的高低当作衡量显示芯片价值的重要指标之一。在Shader Model发展史上,从SM 1.0进化到SM 2.0称得上是真正意义上的技术革命,后者赋予了显示芯片强大的能力,人们在游戏中也领略到前所未有的视觉体验,例如水面光影和雾化等特效的出现使游戏场景更真实。相对而言,SM 2.0到SM 3.0的改进不如SM 1.0到SM 2.0的变化大,SM 3.0除了支持32bit浮点运算是亮点外,其他特效用SM 2.0也可以完成。例如,GeForce 6系列显卡上市时曾大力宣传SM 3.0和HDR(高动态范围)技术,这无形之中就给人一种SM 2.0不能实现HDR或者HDR效果差的错觉。其实在《半条命2∶失落的海滩》中,我们发现使用SM 2.0b的Radeon X800显卡对HDR的支持就很好,只不过SM 2.0的先天不足限制了这些特效的应用罢了。 我们不可否认,SM 3.0的诞生让微软彻底统治了娱乐图形领域。尤其是它更新了统一的渲染语言——全新的HLSL高级程序语言,这大大简化了3D程序的编写工作,同时公正的态度使得程序员不必为NVIDIA或ATI单独考虑优化措施。微软通过DirectX和HLSL从根本上控制了图形技术未来的发展方向,而NVDIA和 ATI为了取得更大的市场份额,不得不全力支持。因此从某种意义上来说,真正统治娱乐图形领域的霸主不是NVIDIA,也不是ATI,而是微软。小编这里建议现阶段想购买显卡的游戏爱好者,最好选择支持SM 3.0的产品,因为采用SM 3.0特性的游戏会越来越多。 毋庸置疑,游戏永远是以显卡为首的电脑硬件更新换代的“催化剂”。随着《分裂细胞3》、《孤岛惊魂》(即FarCry)、《帝国时代3》、《使命召唤2》等支持Shader Model 3.0游戏的陆续问世,GeForce FX系列或Radeon 9500系列之前的显卡也面临着“下岗”的命运。究竟什么是Shader Model?它给游戏带来了哪些变化呢?Shader Model带来可编程革命 经历过S3 Trio64时代的DIYer一定还记得,当时所有的游戏都运行在DOS实模式下,3D游戏要调用这些特效必须借助显卡厂商特制的API(应用程序接口)才行。为了在竞争中取胜,显卡制造商开始疯狂地为产品增加各种硬件特效,如Alpha混合、平面着色、透明化处理等等。 这样的特效竞赛持续没多久,人们便发现,无论怎么增加特效都不能满足游戏开发者的需求。而且由于缺乏统一的API,无法充分利用纷繁复杂的特效。当时的游戏为了尽量支持市场上的各种硬件,不得不同时为每一块显卡准备相应的执行程序,这对游戏开发商来说无疑是个噩梦。为了使显卡发展摆脱特效竞赛的怪圈,设计一款能自由编程的显示芯片便成了研发人员迫在眉睫的任务。不过,在实现可编程之前需要统一的API。好在微软的DirectX开始逐步成熟,OpenGL也已相当完善。显卡制造商们只要直接使用这两种API就能实现所有的硬件功能。 GeForce 256的诞生拉开了GPU时代的序幕。由于在GPU内部首次引入T&L(几何转换和光照处理)引擎,因此使得显示核心能够更快地实现各种复杂的运算,而相应的DirectX 7也在3D应用中开始扮演越来越重要的角色。既然摆脱了CPU的依赖,显卡就有了实现可编程的基础,伴随着DirectX 8的发布,GeForce 3系列产品首次向世人展示了GPU的可编程能力,吃力不讨好的固定特效时代一去不复返。什么是Shader Model在3D图形领域,Shader被称为“渲染引擎”或“着色器”,Shader Model(以下简称SM)就是“渲染引擎模式”了。事实上,Shader是一段能够针对3D对象进行操作、并被GPU所执行的程序。通过这些程序,程序员就能够获得绝大部分想要的3D图形效果。在一个3D场景中,一般包含多个Shader。这些Shader中有的负责对3D对象表面进行处理,有的负责对 3D对象的纹理进行处理。 早在微软发布DirectX 8时,Shader Model的概念就出现在其中了,并根据操作对象的不同被分为对顶点进行各种操作的Vertex Shader(顶点渲染引擎)和对像素进行各种操作的Pixel Shader(像素渲染引擎)。
posted on 2008-10-22 06:13
七星重剑 阅读(1539)
评论(7) 编辑 收藏 引用 所属分类:
Game Graphics