账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
探索绘图处理器之SHADER技术
 

【作者: 黃偉哲】2003年10月05日 星期日

浏览人次:【2600】

长期以来,3D影像应用程序的设计人员在使用计算机创造实时交互式的人物、对象及环境时,总是受到多种限制。其主要原因在于可获得的处理能力受到局限,即现有的图形硬件在灵活性方面受到很大的制约,而且专业绘图硬件的高单价也构成了另一个制约因素。在中央处理器(CPU)上执行运算与在图形处理器(Visual Processing Unit;VPU)上执行运算相比,总是存在着顾此失彼的情形。


前者由于其通用性和可程序化设计的特性允许有更大的灵活性,而后者由于采用与硬件图素管线链接(Hard-wired)和高度优化的架构设计进而获得最佳的绘图效能。一方面,VPU的处理速度正在快速攀升,如市场上最先进的VPU拥有强大的3D绘图运算引擎及八条着色管线,每秒可同时输出超过3Giga以上的图素和3亿8000万三角形对象,推动影像制作技术取得相当大的进展;同时,许多以前由CPU承担的作业正逐渐转由VPU接管。另外,仍然有许多有趣而实用的图形技术,因为需要速度与灵活性的整合,而现有的CPU和VPU都无法充分地胜任,因而一直未能呈现完美的视觉境界。


因此目前市场需要的是一种能够将专用VPU的速度及优化特性与CPU的灵活性及可程序化特性结合起来的新技术,这种技术将使交互式影像的播放速率与视讯效果达到无限逼真的境界。试图引入此项技术的尝试已经获得了成功,它在增加程序设计人员可利用效果的数目方面取得了很大突破,但在多功能性和视觉效果方面却仍然受到一些限制。


SMARTSHADER技术

由绘图技术大厂开发的SMARTSHADER技术将个人计算机的图形效果大幅提升。它允许软件程序设计人员使用许多影像技术,而这些技术在不久之前还仅能应用于由计算机制作的非交互式电影和一些特效中。借助SMARTSHADER技术可以应用到交互式的在线游戏(On-Line Game)、Internet以及数字内容创造等应用程序中。


SMARTSHADER技术代表新一代的可程序化、硬件加速的图形管线。此技术在设计时考虑了尽可能地提升作业效率,并将常见的效能瓶颈,特别是内存传输带宽的局限降至最小。SMARTSHADER技术是首度对由微软在其DirectX 8.0中推出的顶点遮蔽器(Vertex Shader)和图素遮蔽器(Pixel Shader)程序设计语言进行扩充及延伸。这些遮蔽器语言将可程序化设计的灵活性引入图形硬件;但实际应用表明它们仍然存在着一些缺陷,这就为进一步改进提供了很多机会。


根据由3D影像应用程序设计师及研究专家提供的建议,软硬件厂商的合作,对DirectX 8.0遮蔽器的灵活、效率及可用性进行了众多改进。双方共同研究的结果汇集在新推出的DirectX 8.1中,它将SMARTSHADER技术的功能呈现在程序设计人员面前。


为了使影像能在更流畅的画面速率下播放,在每秒钟内图素遮蔽器必须执行数千万次,因此播放效能是考虑的一个重点。每当一个图素经过着色管线时,由于数据需从纹理内存、颜色深度缓冲存储器和显示缓冲存储器中读出并写入,所以要占用内存传输带宽。如果可以减少屏幕上每个图素需经过着色管线的次数,就可以降低内存传输带宽的占用量,而且图素遮蔽器对播放效能的不良影响也会因此而降到最小。DirectX 8.1图素遮蔽器在执行一次着色时最多可以允许六个纹理取样和混色。这意味着在以前的DirectX版本中需要经过多次着色才能达到的效果,现在经过更少次数的处理就可以实现;而以前执行速度较慢但却很有用的效果,现在实现起来会更具实用性与效率。


然而要创造逼真的现实场景需要使用许多纹理,这种场景中包含各种凹凸表面,并混合来自多种光源的扩散光、镜面光和非均匀照明效果,以及产生逼真视觉的反射光和阴影等。现实中许多对象依照简单的算术函数改变其形状。这些函数可以使用顶点遮蔽器设计成模型,并应用到一个对象的每个顶点位置的变化上,创造出逼真度极高的过渡性变形动画。这一技术有极广泛的应用,如制作水波、飘扬的旗帜和风中的披肩,如(图一)所示,以及一些飘浮的对象,如肥皂泡沫等如(图二)


《图一 使用顶点遮蔽器制作的飘动衣物》
《图一 使用顶点遮蔽器制作的飘动衣物》
《图二 使用顶点遮蔽器制作的肥皂泡动画》
《图二 使用顶点遮蔽器制作的肥皂泡动画》

DirectX 8.0图素遮蔽器最多可以使用四个纹理寻址指令和八个纹理混色指令,但透过这些有限的指令,仍然无法实现众多视觉效果。可程序化图素遮蔽器的最强大的功能是由纹理取样和寻址指令提供,而DirectX 8.0的图素遮蔽器仅能使用四个这样的指令,局限于仅可提供四十种有用的纹理寻址方式。而DirectX 8.1的图素遮蔽器则将纹理取样指令与寻址指令分开,使地址遮蔽器可以使用最多十四条指令。这一变化使纹理的取样和寻址可以透过几乎不受限制的方式进行,而且能够实现众多DirectX 8.0不能实现的视觉效果。


DirectX 8.0图素遮蔽器另一个可供进一步改进的方面是其指令集。地址遮蔽器和色彩遮蔽器使用了两个不同的运算指令集。色彩遮蔽器的指令基本上都是简单的算术运算,而地址遮蔽器的指令相对而言则比较复杂而且缺乏灵活性。DirectX 8.1简化了图素遮蔽器语言,使色彩遮蔽器指令集可以同时用于地址遮蔽器。除使图素遮蔽器语言更易于编写之外,还免除了在单一遮蔽器中使用两个不同语言会引起的数据类型不兼容等问题,这意味着许多效果现在可以透过比以前更少的指令就可以实现。


图素遮蔽器的特殊视觉效果

众多特殊类型的图素效果可以藉助SMARTSHADER技术得以实现。大多数顶点遮蔽器效果包括对象形状和位置的变化,而大多数图素遮蔽器效果则集中于对材料属性和表面纹理的控制。这些效果大部份是透过纹理寻址指令,对经过图素遮蔽器的纹理坐标执行算术运算,然后使用修改的坐标执行依赖性纹理读取来实现。


多光源的单次、完全图素着色

采用SMARTSHADER技术实现的大多数效果都包括来自多源的完全图素照射法。使用所有六个输入到图素遮蔽器的纹理,凹凸表面的对象仅需经过一次着色处理就可以由来自多光源的反射光进行精确的绘制。光源可以包括环境对应(提供逼真效果的反射光)、点光源、聚光灯、发光对象以及其它光线数据,如(图三)所示。


《图三 三个不同色彩的聚光灯照射下的对象 图注:SMARTSHADER技术可以对这种影像进行单次着色,而以前需按比例进行数次着色才能完成。》
《图三 三个不同色彩的聚光灯照射下的对象 图注:SMARTSHADER技术可以对这种影像进行单次着色,而以前需按比例进行数次着色才能完成。》

全彩Phong阴影法

Phong阴影法是一种算术模型,它构成了当今三度空间应用程序中大多数光线运算的基础。它将输入光分为三个元素(环境光、扩散光和镜面光),并为照射的表面赋予属性,以决定观察者从任何给定的点观察时所看到的最终色彩。使用以下方程序:


由于此方程序非常复杂而且包含了太多变量,在大多数应用程序中仅使用了简化的近似值。SMARTSHADER技术则允许实现完整而精确的Phong阴影法方程序,甚至对于多光源的情形也是如此。可以使用特定的纹理对应图,针对任何表面相应地改变方程序中的任何变量,如k(用于控制亮度)。如此,任何类型的材料都可以绘制出相当逼真的效果如(图四)。


《图四 使用真实和想象材料进行完全像素Phong阴影法处理的范例》
《图四 使用真实和想象材料进行完全像素Phong阴影法处理的范例》

非均匀光线照射法

虽然Phong阴影法对于表面基本光滑的材料能达到较好的效果,但现实中的许多表面却是由众多极小表面或微粒组成的,如衣物、头发和沙滩等。这个特点使它们以非寻常的方式反射光线,而且仅可借助于一种称为非均匀光线照射法的技术才可以在计算机屏幕上正确地仿真显示。非均匀光线照射法使用一些复杂的函数,称为BRDF(双向反射分布函数),决定光线如何作为一个视角函数从表面上反射回来。这些函数的结果储存在特殊的纹理色彩对照表中,对于每个特定的表面类型而言,参照色彩对照表是唯一的途径,(图五)便显示了一个范例。


《图五 使用非均匀光线照射法对头发的处理模型 图注:两幅图片显示了光源移动时反射光发生的变化。》
《图五 使用非均匀光线照射法对头发的处理模型 图注:两幅图片显示了光源移动时反射光发生的变化。》

进阶凹凸贴图

凹凸贴图已被证明是在不需要大量额外几何数据的前提下改进表面显示真实度的一种很有用的技术。环境对应凹凸贴图(对于发光的表面效果最佳)和Dot Product 3凹凸贴图(对于无光泽表面效果最佳)都可以使用图素遮蔽器得以实现。SMARTSHADER技术能呈现更高阶的凹凸贴图效果,例如自成阴影凹凸贴图(又称为水平贴图)以及合并多个凹凸贴图的能力如(图六)。


《图六 使用迭加凹凸贴图绘制的水波 图注:从中心扩散开的水波迭加在湖中移动的水波上。着色此影像仅需链接四个三角形。》
《图六 使用迭加凹凸贴图绘制的水波 图注:从中心扩散开的水波迭加在湖中移动的水波上。着色此影像仅需链接四个三角形。》

过渡纹理

精细的纹理一般需要大量的图素内存储存,这将限制纹理的变化数及可使用的精细数据数量。现在,借助于SMARTSHADER技术可以使用算术函数创造出更多精细而有趣的纹理,而仅需占用极少甚至不占用任何内存,因为它们是在图形处理器上生成的。(图七)显示了此技术的一个范例。


《图七 使用过渡纹理处理绘制的大理石图案》
《图七 使用过渡纹理处理绘制的大理石图案》

结论

透过SMARTSHADER技术3D影像游戏及其他应用程序的设计人员能够充分地发挥创意和想象力,透过一个可程序化的图素管线完成几何处理和着色处理作业。顶点遮蔽器能够实现自定义的变形和加亮效果,并能够对三度空间人物、对象和环境的形状及位置进行控制。而图素遮蔽器则可以绘制众多不同的完全图素效果,使对象的自然属性得到高精确度的仿真。如头发、衣物、金属、玻璃和水等,在以前的实时应用程序中描绘这些对象一直是件很困难的事。一些重要的视觉提示,如来自多光源的反射光、高反差和阴影等,现在可以利用更快的速度和精确度进行着色。


SMARTSHADE技术支持一次着色最多处理六个纹理,使指令数增加为原来的两倍,并使用改进的语言提供更大的灵活性和通用性。这些改进扩充了图素效果的数目,并在节省内存传输带宽的情况下改进了影像效能,而且允许在更多的游戏和其他应用程序中使用此项技术。采用SMARTSHADER技术将加速图形效能改进的进程,并令计算机屏幕的影像显示效果比以前任何时候更接近于电影效果。(作者为ATi台湾分公司亚太区营销经理)


相关文章
促成次世代的自主系统
手机视觉最佳体验 行动GPU不可或缺
comments powered by Disqus
相关讨论
  相关新闻
» Nordic上市nRF Cloud设备管理服务 大幅扩展其云端服务
» 是德、新思和Ansys共同开发支援台积电N6RF+制程节点射频设计迁移流程
» 美光32Gb伺服器DRAM通过验证并出货 满足生成式AI应用要求
» Cadence结合生成式AI技术 开创多物理场模拟应用新时代
» AMD公布2024年第一季财报 成长动能来自AI加速器出货增长


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.1.HK85E0PDBRYSTACUKO
地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw