随笔 - 505  文章 - 1034  trackbacks - 0
<2008年10月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678


子曾经曰过:编程无他,唯手熟尔!

常用链接

留言簿(94)

随笔分类(649)

随笔档案(505)

相册

BCB

Crytek

  • crymod
  • Crytek's Offical Modding Portal

Game Industry

OGRE

other

Programmers

Qt

WOW Stuff

搜索

  •  

积分与排名

  • 积分 - 856793
  • 排名 - 15

最新随笔

最新评论

阅读排行榜

评论排行榜

知识在于积累,了解得多了就是行家。

 

一点点历史….

   1995年,3Dfx发布第一块消费级的3D硬件加速图形卡开始,计算机图形技术和相关的硬件技术都取得了重大进展。虽然这类图形卡在渲染功能上有诸多限制,但为开发者打开了一片新的天地,终结了只能依靠软件解决方案进行渲染的时代。其结果是让实时3D图形和游戏都变得更加真实。

       此后,接下来的几代硬件都在性能和功能方面有了重大突破。但是,由于受到硬件固定管线构架(fixed-pipeline architecture)的限制,仍然有很多约束,开发者被强制只能通过使用和改变渲染状态来控制渲染过程,获得最终的输出图形。

        固定管线构架功能上的局限性,限制了开发者创建所需效果的能力。总的来说,它所产生的图形都不够真实。另一方面,用于电影CG渲染的高端软件渲染构架则发明了一些让渲染更加逼真的方法。Pixar Animation Studios开发了一门称为RenderMan的着色语言。它的目的是让艺术家和开发者使用一门简单但强大的编程语言来完全控制渲染过程。RenderMan可以创建出高质量的图形,从照片级的真实效果,到卡通风格的非真实渲染效果都可以实现。被广泛用于当今的电影中,包括著名的动画Toy StoryA Bug’s Life

       随着处理器芯片制造技术的革新,和处理能力的增强,RenderMan的思想逐渐影响并延伸到了消费级图形硬件。DirectX 8的发布引入了顶点(vertex)和像素着色器(pixel shader1.0 以及1.1版本。虽然这两个版本的着色模型灵活性不高,同时缺乏流程控制等一些功能。但是,这第一步,给予了艺术家和开发者长久以来所梦想的,创造夺目的、真实的图形的能力。消费级图形卡所生产的图形终于能和好莱坞电影工作室所渲染出的图形相比了。
       接下来的几年间,图像硬件和3D API无论在功能和性能上都取得了巨大飞跃,甚至打破了摩尔定律中的技术进步速率。随着DirectX 9.0 SDK以及最新的一代图形卡的发布,比如NvidiaGeforce FX系列和ATIRadeon 9800系列,顶点和像素着色器发展到了2.02.x版本。以及随后的3.x版本。

SM-->shader model

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(像素渲染引擎)。


HDR与Shader Model


posted on 2008-10-22 06:13 七星重剑 阅读(1405) 评论(7)  编辑 收藏 引用 所属分类: Game Graphics

FeedBack:
# re: 图形学扫盲--(1)SM(Shader Model)解释及追根溯源 2008-10-22 09:18 momor
看不到图片  回复  更多评论
  
# re: 图形学扫盲--(1)SM(Shader Model)解释及追根溯源 2008-10-22 10:16 七星重剑
@momor
点链接看吧  回复  更多评论
  
# re: 图形学扫盲--(1)SM(Shader Model)解释及追根溯源 2008-10-22 18:21 空明流转
pixar  回复  更多评论
  
# re: 图形学扫盲--(1)SM(Shader Model)解释及追根溯源 2008-10-22 20:54 七星重剑
@空明流转
?  回复  更多评论
  
# re: 图形学扫盲--(1)SM(Shader Model)解释及追根溯源 2008-11-18 20:49 七星重剑
@空明流转
今天终于知道老大说pixar是为什么了
谢谢老大提醒啊  回复  更多评论
  
# re: 图形学扫盲--(1)SM(Shader Model)解释及追根溯源 2008-11-18 20:49 七星重剑
@空明流转
已经增加了pixar的部分了  回复  更多评论
  
# re: 图形学扫盲--(0)SM(Shader Model)解释及追根溯源 2014-11-05 14:07 PeakFish
楼主你说的这些都是啥意思啊  回复  更多评论
  

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理