网页也能3D 详解Web显卡3D加速技术
随着显卡图形技术全面进入DX10时代以来,显卡的构架也发生了相当大的改变,由最初的顶点/管线分离式构架转变为当前的统一渲染构架。并且通过配套软件的不断完善,显卡强大的并行处理优势逐渐凸显出来,所负责的工作也不再是单单只是渲染3D图像,已经开始可以参与到一些大规模计算中来,在一定程度上减轻了CPU的负担。 目前显卡芯片厂商都已经推出了比较成熟的通用运算解决方案,例如NVIDIA的CUDA通用运算技术,这项技术到目前为止应用的范围相当广泛,其中涵盖了:图像处理、视频处理、科学运算、密码破解等多种领域。通过这些技术不仅可以大大提升工作人员的工作效率,还能够进一步降低硬件成本。这也是为什么新一代超级计算机大量采用GPU作为加速处理器的原因。 关于利用CUDA通用运算技术进行转码的应用,我们在之前文章中已经做过相当全面的介绍及测试,相信大家已经非常了解显卡加速给我们带来的便利。而最近随着技术的进一步发展,大家最常用的网页也开始加入对显卡加速的支持,在这篇文章中,我们就详细的介绍一下显卡加速在网页中的应用。 说到网页游戏相信大家都会想到“蔬菜采摘”这一经典的游戏。网页游戏最先起源于德国,又称Web游戏,是利用浏览器玩的游戏,它不用下载客户端,任何地方任何时间任何一台能上网的电脑就可以快乐的游戏,尤其适合上班一族。之前由于技术的限制网页游戏只能以2D形式来实现,不过最近网络巨头Google推出的O3D API技术则可以在Web中实现3D渲染的效果,当然这项技术还是需要GPU进行加速。 通过O3D应用程序接口可以直接在浏览器中实现3D渲染,渲染的流畅度完全取决与GPU的计算能力。在测试中我们采用了NVIDIA最新推出的GT240 显卡,由截图上可以看出在网页中实时渲染出的图像已经可以和《魔兽世界》来媲美并且画面非常流畅——帧数稳定保持在30帧以上而CPU占用率却非常低。
开发者利用O3D开发出的Web 3D场景 和前面介绍的O3D类似,WebGL也是一种基于Web的图形应用程序接口,目前Webkit内核的浏览器包括Safari、Google Chrome以及Mozilla公司的FireFox都内建了WebGL技术。 开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。显然,WebGL技术标准免去了开发网页专用渲染插件的麻烦,可被用于创建具有复杂3D结构的网站页面,甚至可以用来设计3D网页游戏等等。 WebGL完美地解决了现有的Web交互式三维动画的两个问题:第一,它通过HTML脚本本身实现Web交互式三维动画的制作,无需任何浏览器插件支持;第二,它利用底层的图形硬件加速功能进行的图形渲染,是通过统一的、标准的、跨平台的OpenGL接口实现的。 不管是Google的O3D还是Khronos的WegGL都无疑是要将3D内容从本地搬到网页上来运行,两者都需要GPU加速才能获得更好的效果。从目前来看这两者似乎存在着一些竞争的关系,但我们完全可以相信在未来的两三年之内,在网页上运行大型3D游戏将不再是梦想。 说完了利用显卡加速进行3D网页渲染的应用,下面再来讲讲大家在上网时最常做的事——观看网络视频。目前绝大部分的网络视频都基于Adobe公司推出的 Flash技术,该技术对视频的压缩率相当高,画质也还能说得过去。但随着人们对网络视频清晰度的要求越来越高,网络视频播放必然需要GPU进行渲染。 Adobe在近期发布了Flash最新测试版本——Flash 10.1 Beta2,正式版本预计要等到明年才会推出。不过在这个测试版中,Adobe已经加入了对视频GPU硬件加速的支持,可以在播放H.264编码的 Flash视频时实现硬解,将解码视频的工作移交给显卡执行,从而使一些低端主机也能流畅的播放高码率视频。 从测试结果中,可以看出支持显卡加速之后的版本所带来的性能提升非常明显。尤其在播放1080P视频时,CPU占用率竟减少了40%,即使是Atom这样的低端平台,占用率也仅为20%左右。 不过Flash 10.1 Beta2只是通过调用显卡的视频解码单元来实现加速的效果,因此显卡的强大性能并没有完全发挥出来,并且受制于显卡视频解码单元缘故,新版本Flash播放器还只能硬解H.264编码,兼容性还有待提高。 对Web开发者来说Silverlight是一个非常熟悉的技术,Silverlight是一个跨浏览器、跨客户平台的技术,能够设计、开发和发布有多媒体体验与富交互(RIA,Rich Interface Application)的网络交互程序。其本质和Adobe的Flash差不多,但开发方面更加具有灵活性。目前Silverlight的主要竞争对手就是Adobe Flash。 微软在Silverlight 3中加入了几个关键技术的支持,包括支持更多的媒体编码格式,如H.264,AAC等等;图形计算采用GPU加速,有效的减轻CPU的负担;透视化3D技术,也就是把2D对象放到3D空间中去;Shader概念的引入,同样采用GPU进行加速。
使用Silverlight搭配GPU加速在网页中播放高清视频 事实上,微软的其他产品也非常注重GPU加速,包括前面我们提到的IE9浏览器,还有windows7操作系统中的Direct Compute以及世人皆知的DirectX应用程序接口,这一切都是微软重视GPU的表现。 从前面我们对于在Web上进行显卡加速的介绍可以看到,使用GPU加速Web内容不仅仅可以互联网内容更加丰富,而且从很大程度上降低了CPU的负担,用户在选购电脑的时候就可以直接搭配较低规格的CPU,但是至少需要配备一块独立显卡。而对于选购中高端CPU的用户来说也同样不算浪费,使用GPU加速闲置的CPU资源可以用来处理更多其它的应用,比如一边欣赏着互联网上的高清视频,一边使用闲置的CPU执行大文件压缩等等。 实际上目前利用GPU通用计算技术进行加速的方法不仅仅只针对于民用级,在专业领域更是做出了功不可没的贡献,当前最火热的灾难性大片《2012》其中大量让人赞不绝口的视觉特效就是通过NVIDIA CUDA通用计算技术来实现的。据制片方介绍他们在四个月的时间里完成了103个任务繁重的计算机模拟镜头,而在展示这些镜头的时候,有非常大的计算量需要处理。正因为显卡强大的通用运算能力,让他们的工作效率提升了10倍。 相信随着GPU的应用范围越来越广,在未来的电脑应用中大规模的采用GPU加速已经成为了一种必然,我们要做的仅仅是在选购电脑时搭配一款性能强劲并支持通用计算的显卡而已。 >>相关产品 |