BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / hard-ware / #36同步于 2005/9/10
HardWare机器人发帖

[合集] 关于SM2.0和SM3.0 转一贴 估计能说明问题

littleboy
2005/9/10镜像同步0 回复
☆─────────────────────────────────────☆ iCer (shader shader and more shader) 于 (Fri Sep 9 18:48:27 2005) 提到: 看之前 要牢记 所有Geforce 6 & 7 都支持SM3.0 &HDR 所有Geforce FX支持SM2.0a 但是性能很差 所有X800 X700 X300不支持SM3.0 &HDR 严格支持SM2.0b 越来越多的游戏支持SM3.0 包括Farcry HL2(某些场景) 还有帝国时代三等大牌游戏 特性上 SM2.0b < SM2.0a <SM3.0 Sm3.0不是嘘头 能够确实的提高性能 或者画质 ATi新一代R520 可以支持SM3.0 HDR HDR常规无法在AA模式(抗锯齿)中打开 我们今天谈到的Shader Model是微软公司定义图形平台性能的一个标准,是影响未来游戏开发的重要角色,我们称之为“着色器”。 Shader Model初探 Model? 不,这个“Model”可不是指凯特·摩丝或者纳奥米·坎贝尔,这些有着魔鬼身材的尤物在T台上长袖善舞。我们今天谈到的Shader Model是微软公司定义图形平台性能的一个标准,是影响未来游戏开发的重要角色,我们称之为“着色器”。 1、小背景 1997年3Dfx Voodoo显卡的面世标志着3D加速图形时代的到来,当时的技术还局限于像素处理和图元光栅化加速的层面。此后出现的GeForce 256才是第一款真正通过基于硬件的变形和光照实现全部场景加速的显卡。 GeForce 2支持DirectX 7标准,是GeForce 256系列显卡中运算较快的一个版本,但仍属于固定功能的显卡。 GeForce 3是第一款集成了可编程GPU的DirectX 8级别显卡,支持Shader Model 1.1。 Radeon 8500是GeForce 3同一时代的产品,但比GeForce 3稍晚一点问世,它支持Shader Model 1.4。 nVIDIA发布了支持DirectX 9.0标准的GeForceFX显卡,ATi则发布了9700系列显卡。这两种显卡均支持DX9和Shader Model 2.0,在一些额外特性上nVIDIA还支持Shader Model2.0a。 现在GeForce 6和GeForce7系列显卡已经能够支持DirectX 9.0c和Shader Model3.0。Radeon的x800系列产品则只能支持DirectX 9.0c和Shader Model2.0b。 着色器是什么东东? 简单地说,着色器是渲染像素和顶点的小程序,分为像素着色器和顶点着色器两种类型。这些程序能够向基本的几何图形添加效果,例如,向蓝色纹理平面添加水纹使其具有反射效果,也可向多边形纹理添加玻璃效果使其具有透明的视觉特性。现在游戏画面的品质要比三四年前好许多,着色器的作用功不可没。 由于着色器具有可编辑性,游戏开发者可根据需要为产品打造出独特的视觉效果。nVIDIA和ATi公司都建有适合各自显卡的着色器标准库。在不需要特定效果时,开发者也可以直接调用这些标准库。 为了适应表现日益复杂的显示效果的需要,着色器的每一次修订都规定了着色器长度(可执行的单独指令的数量)的增加。开发者们编写程序的方式也得到了改进,Model1.1还只能允许使用简单代码;Model2.x增加了一些循环语句的使用;Model3.0则通过动态分支技术,允许在着色器程序中调用if-then条件语句。削减代码长度的平滑处理技术也提高了运算速度。在Model 2.x和 3.0规范之间最大的差别也许就是Model 3.0中顶点纹理查找的添加,通过它可以实现置换贴图。 2、游戏测试 技术日新月异,各大厂商的硬件升级路线却不尽相同,比如nVIDIA的产品支持Shader Model3.0,但ATi目前还不支持SM3.0。 由于市场上过半的产品还不具备支持Shader Model 3.0的能力,因此它在游戏开发者那里并没有得到及时应用。早期的游戏,比如Far Cry,将Shader Model3.0作为加速渲染的一个途径,因为绝大部分能在Model3.0中完成的效果在Model2.x中也能完成,尽管略有性能损失。后来的发布补丁则添加了对HDR光照功能的支持。 孤岛惊魂(Far Cry) 那么,这些规范究竟作用如何?我们进行了专门的测试,Far Cry的1.3补丁程序加入了对Shader Model3.0的完全支持,硬件性能的提升也是显而易见的:在6800 Ultra显卡最高设定的条件下,可见平均40FPS到50FPS的频率跳跃。我们还注意到大约15%的额外性能,这说明当Model3.0和2.x路径极为相似时,Model2.x中需求的代码妥协会导致明显的性能损失。如果想亲自体验一下,可以在游戏控制台输入“/r_sm2xpath”强制执行Model2.0b,或者“/r_sm30path ”强制执行Model3.0。 nVIDIA支持高色彩精确度和FP16多路渲染,这使得FarCry1.3补丁能够表现高动态范围光照,在屏幕上呈现出更加多样化的色彩范围。亮的更亮,黑的更黑,整体效果更生动。然而在处理高精度数学计算时存在较大的性能损失,相信下一代的硬件产品,比如GeForce 7800 GTX,能够很好地解决这个问题。 细胞分裂之混沌理论(Splinter Cell: Chaos Theory) 在最新版本的细胞分裂之混沌理论(SCCT)中,开发者植入了Model1.1和3.0两个着色器路径。两种着色器模型的使用突出了执行不同标准所能带来的差异。这款游戏测试的结果显示,Model1.1支持透明材质,实时反射贴图,柔和阴影过滤,镜像光源和可编程动画纹理。而Model3.0则支持位移映射,强化的柔和阴影过滤,HDR光照,高精度渲染。此外,还有一个高级皮肤着色器支持子面散射。 特性细化 上面所说的那些特性究竟意味什么?Shader Model3.0功能更加强大,假定图像质量不变,与运行Model1.1相比,运行Model3.0将有显著的性能提升。为改善图像质量而添加Model3.0特定的图形特性将以牺牲性能表现为代价。 位移映射:属于置换贴图的一种形式。它利用纹理顶部的高度地图,通过视差畸变给纹理赋予高度外观。也就是说,它可以在不使用大量几何图形的前提下造成材质具有深度的视觉感受。 柔和阴影:提高了阴影的表现质量,这在一定程度上取决于3.0阴影着色器可以更快地执行动态分支。 子面散射:通过展示皮肤下面的光线,达到渲染皮肤表面、实现渐变半透明效果的一种方式。它能带来令人吃惊的效果,在处理游戏中的人物时表现极佳。 高精度渲染:更高的精度渲染意味着更好的色彩复制效果,同时还令现在偶尔可见的色带消声匿迹。 3、关于nVIDIA和ATi nVIDIA反应迅速,在其去年发布的6系列产品中便支持SM3.0。ATi显然不甘落后,他们的下一代产品R520也将全面支持SM3.0。 支持SM2.0的GeForce FX具有这样的优势,它允许开发者调用授权代码弥补硬件性能上的不足。由于ATi一直严格执行SM2.0b标准,为了完全支持其市场上的系列产品,开发者不得不为SM1.1,1.4,2.0b和3.0编制代码。育碧公司关于SM1.1和3.0的调查显示,伴随着SM1.1成为昨日黄花,SM1.4和SM2.0似乎也名存实亡了。下面的事实更能证明这种情形:XBOX支持SM1.1,而XBOX 360支持SM3.0,Model2.x却不见踪影。 下一年度的硬件与着色器展望 关于硬件如何发展才能适应日新月异的着色器规范与技术,众说纷纭。下一个版本的DirectX标准(WGF),对顶点着色器和像素着色器要求具有统一的规范,因此这两者可以在软件级别交替使用。ATi还准备将两者在硬件级别实现一体化,以提供更加快速平滑的流线型渲染界面,并避免我们现在经常遇到的一种困扰——像素着色器全速运作时,顶点着色器却负载不足甚至闲置。 nVIDIA此时并不热衷于硬件一体化。究竟哪家公司的选择是正确的,在Longhorn操作系统面世之前我们还无从知晓。不过可以确定的是,鉴于所有的显卡厂商都将支持SM3.0,同时我们预计在至少一年内不会有新版本的着色器规范面世,开发者们终于可以全力以赴开发产品,而无需猜测将来要发生什么。 4、Vista之亲密接触 在某种程度上,未来PC的图像处理效果将依赖于新一代视窗操作系统——微软计划在2006年发布的Windows Vista。Vista提供了新一代的用户界面,codenamed Aero。Aero同样适用于Windows XP操作系统。 Aero使用3D硬件渲染桌面,支持复杂的图形效果。因此,为最大限度地实现下一代标准的视窗应用,DirectX 9级别的硬件将成为必需。 目前的Windows应用自行实现屏幕刷新重画。如果部分屏幕需要刷新,程序只在屏幕顶端描画,然后输出新图形到显卡并在屏幕上显示。对于重画之前的屏幕内容Windows并无任何记忆功能。 Aero使用3D硬件来实现外屏的图层重画,以这种方式取得很好的合成效果。举例来说,透明效果可以通过混合重画图层实现,Windows改变透明度实现淡入和淡出效果。Windows可以被当作3D物件来处理,实现平铺、移动和渲染。图形硬件在其全部的工作时间里以这种方式完成场景合成,所以非常快速有效。 标记 了解如何为Windows编写应用程序可以让我们明白3D硬件给Longhorn操作系统带来的好处。新操作系统的用户界面可以在标记中编写,用一系列简单语句定义代码。通过硬件来实现用户界面单独元素的分层,从而使同一应用程序内的单独按钮和对话框都有自己的渲染效果。 我们预计,伴随着Longhorn的到来,WGF将为Windows处理着色器和全部3D架构带来一些新变化。 在像素着色器和顶点着色器从模型2.0、2.x到3.0的发展过程中,像素着色器和顶点着色器的功能已经变得非常接近。在这种趋势下,所有的WGF着色器模型都将具有同一性,这种统一规范使硬件中像素管道和顶点管道的统一成为可能。 WGF中的着色器统一 这种统一的额外好处在于,纹理化这个像素着色器功能也能在顶点着色器内执行,完成置换贴图的操作——基于像素的纹理通过挤压而被赋予基于顶点的高度特性,数据无需在纹理和顶点单元之间来回传送。 处理整数运算的新功能同样使新的硬件配置成为可能。目前,在GPU和内存之间完成内存寻址的唯一方式是利用浮点值进行纹理查找。将整数导入内存查找可以获得更加精确的表现效果,在虚拟内存和系统主内存里存储图像数据时也具有更大的灵活性。 与我们所知道的处理器调用虚拟内存的方式一样,伴随着新的整数功能,虚拟视频内存在理论上允许着色器具有不受限制的指令长度。其原因在于,着色器长度的唯一限制来自于分配给图形内存的虚拟空间大小,这有助于获得更奇妙的图形效果和更快的处理速度。比较长的着色器例程可被分割为多个例程以适应指定的着色器长度,从而获得更小的运行开销,更为简洁的代码和更理想的性能表现。 5、着色器小结 ◆ 着色器长度: 更长的着色器程序可以实现更复杂的渲染效果。 ◆ 动态分支: 允许以更为简单的条件语句(if,then)取代嵌套循环语句。 ◆ 隐面寄存器:一次性完成两条光线运算,并提高运算速度。 ◆ 颜色深度: 实现更加精确和生动的色彩表现。 ◆ 嵌套循环: ATi所支持的Model2.0b规范。 ◆ 顶点纹理查找: 实现置换贴图和位移映射,使纹理具有高度的视觉效果。 结论 WGF将在2006年晚些时候发布,所以SM3.0的广泛应用还需以时日。同时,由于着色器规范的变化不会很大,nVIDIA此时便具有明显优势。基于SM3.0的游戏必将大量涌现,缺乏对SM3.0的支持将影响到图像质量,所以对于时刻追求极致效果的骨灰级玩家来说,此时ATi显卡对他们的吸引不大。 [upload=1][/upload] ☆─────────────────────────────────────☆ AyanamiRei (AyanamiRei) 于 (Fri Sep 9 18:50:02 2005) 提到: 当年geforce号称gpu 发热也号称xxx 现在来看那点发热算啥…… 【 在 iCer (shader shader and more shader) 的大作中提到: 】 : 看之前 要牢记 : 所有Geforce 6 & 7 都支持SM3.0 &HDR : 所有Geforce FX支持SM2.0a 但是性能很差 : ................... ☆─────────────────────────────────────☆ iCer (shader shader and more shader) 于 (Fri Sep 9 18:50:39 2005) 提到: MM 跑题了.... 【 在 AyanamiRei (AyanamiRei) 的大作中提到: 】 : 当年geforce号称gpu 发热也号称xxx : 现在来看那点发热算啥…… ☆─────────────────────────────────────☆ MYTH (忘记路人甲@一夜情寝) 于 (Fri Sep 9 18:55:46 2005) 提到: 【 在 iCer 的大作中提到: 】 : MM 跑题了.... -_-!!! ☆─────────────────────────────────────☆ iCer (shader shader and more shader) 于 (Fri Sep 9 18:58:23 2005) 提到: 他不是MM 是人yao 【 在 MYTH (忘记路人甲@一夜情寝) 的大作中提到: 】 : -_-!!! ☆─────────────────────────────────────☆ nvidia (Geforce 7800GTX) 于 (Fri Sep 9 19:57:59 2005) 提到: Shader3.0需要数千万个额外的晶体管 ☆─────────────────────────────────────☆ iCer (shader shader and more shader) 于 (Fri Sep 9 20:00:52 2005) 提到: 110nm or 90nm只会增加一点点面积..... 【 在 nvidia (Geforce 7800GTX) 的大作中提到: 】 : Shader3.0需要数千万个额外的晶体管 ☆─────────────────────────────────────☆ nvidia (Geforce 7800GTX) 于 (Fri Sep 9 20:11:58 2005) 提到: M$非要推统一shader
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。