网页也能3D 详解Web显卡3D加速技术
消费者正在感受3D游戏
随着显卡图形技术全面进入DX10时代以来,显卡的构架也发生了相当大的改变,由最初的顶点/管线分离式构架转变为当前的统一渲染构架。并且通过配套软件的不断完善,显卡强大的并行处理优势逐渐凸显出来,所负责的工作也不再是单单只是渲染3D图像,已经开始可以参与到一些大规模计算中来,在一定程度上减轻了CPU的负担。
目前显卡芯片厂商都已经推出了比较成熟的通用运算解决方案,例如NVIDIA的CUDA通用运算技术,这项技术到目前为止应用的范围相当广泛,其中涵盖了:图像处理、视频处理、科学运算、密码破解等多种领域。通过这些技术不仅可以大大提升工作人员的工作效率,还能够进一步降低硬件成本。这也是为什么新一代超级计算机大量采用GPU作为加速处理器的原因。
关于利用CUDA通用运算技术进行转码的应用,我们在之前文章中已经做过相当全面的介绍及测试,相信大家已经非常了解显卡加速给我们带来的便利。而最近随着技术的进一步发展,大家最常用的网页也开始加入对显卡加速的支持,在这篇文章中,我们就详细的介绍一下显卡加速在网页中的应用。
说到网页游戏相信大家都会想到“蔬菜采摘”这一经典的游戏。网页游戏最先起源于德国,又称Web游戏,是利用浏览器玩的游戏,它不用下载客户端,任何地方任何时间任何一台能上网的电脑就可以快乐的游戏,尤其适合上班一族。之前由于技术的限制网页游戏只能以2D形式来实现,不过最近网络巨头Google推出的O3D API技术则可以在Web中实现3D渲染的效果,当然这项技术还是需要GPU进行加速。
通过O3D应用程序接口可以直接在浏览器中实现3D渲染,渲染的流畅度完全取决与GPU的计算能力。在测试中我们采用了NVIDIA最新推出的GT240 显卡,由截图上可以看出在网页中实时渲染出的图像已经可以和《魔兽世界》来媲美并且画面非常流畅——帧数稳定保持在30帧以上而CPU占用率却非常低。
英伟达3D显卡
开发者利用O3D开发出的Web 3D场景
Google O3D还是通过插件的形式安装到浏览器中,感兴趣的朋友可以通过这里安装,Windows和Mac平台的插件都已经直接可以使用,而Linux平台的插件则需要手动编译。同时,Google还提供了大量的O3D演示DEMO,大家可以自行测试。
和前面介绍的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进行加速。