原文:Is 3D Finally Ready for the Web?
作者:Sixto Ortiz Jr.
来源:Computer archive, Volume 43, Issue 1 (January 2010) table of contents, Pages: 14-16, 2010
Introduction 介绍
最初的互联网是以一个简陋的鼠标点击环境开始的,但如今,互联网上已经到处是各种眼花缭乱的页面,充满着各种丰富的应用程序,有的用来娱乐,有的用来提高生产率,等等等等。用户可以在互联网上完成各式各样的任务,不管是购买商品,还是与全世界的用户实时交互。然而,一个关键的元素却迟迟没有在互联网上打上自己的烙印——3D。
在今天,3D的在线应用主要是游戏和虚拟世界,这些都需要强大的电脑和特殊的软件来支撑。然而,商业,工程企业和其他一些用户同样也需要3D,他们同样也需要3D所带来的真实感和更多细节。用户希望他们能够在浏览器中获得和在PC中一样的体验。并且由于3D技术在电影、游戏和其他各种娱乐行业中的广泛应用,消费者已经对它习以为常。因此,对于互联网上更多且更易于访问的3D内容的需求变得越来越强烈。况且更好的浏览器体验同时也意味着更多潜在的收入。
然而,互联网3D还处于一种很不成熟的状态,因为很难在典型的PC和浏览器上广泛使用这种复杂的技术。事实上,一般浏览器也无法承载复杂的3D内容,更无法提供高帧率或全屏的图形效果。并且,在实时的合作程序和其他应用程序中包含3D让本来已经很繁琐的开发过程会变得更加复杂。
尽管如此,现在是有一些组织在为网络3D技术而努力工作的。他们尝试将浏览器转为一种更为强大的计算平台,以在该平台上获得如PC上一样的体验,例如3D内容的展示。这些工作将会为网络衍生出更多的应用程序,包括产品建模,展示和配置;3D在线会议和工人协作;对于手术或机械过程的模拟;虚拟旅游;增强现实等等。
不管怎样,在互联网3D技术变得可依赖和成为主流之前,仍然有重重的困难需要克服。
3D on the web 网络上的3D
早期的网络是没有图形界面的,直到NCSA(美国国家超计算应用程序中心)在1993年发布了Mosaic,这是首个可以同时展示图片和文字的浏览器。
当前在互联网上,已经有一些为3D服务的技术在使用,他们基本使用同样的方式工作,但是使用不同的文件格式。
VRML和X3D
网络3D开始于1994年,在这一年,VRML组织发布了虚拟现实标记语言(Virtual Reality Markup Language)。然而,VRML从未流行过,因为它限制开发者只可以写3D相关的内容。为了创建完整的引人注目的应用程序,开发者必须能够同时开发3D,2D,视频和音频。在处理器和软件能够支持图形之前,VRML表现还是不错的,因为它能支持图形。但是VRML太慢,并且没有能力渲染复杂高仿真的模型和场景。
在1997年,Web3D联盟推出了X3D,它是一种基于XML的文件格式,同时也是VRML的扩展,以用来表现3D图形。X3D同样也没有流行过。游戏和3D开发人员广泛忽视了X3D,X3D只被极少数的商业工具所支持。
其他方法
3D工业论坛于2003年推出的Universal 3D技术,是一种压缩的3D图形文件格式。然而,它的推崇者也只是推动Universal 3D使其成为了一种主要使用在制造业或建筑业相关应用程序的文件格式。
开源的网络3D标记语言(3DMLW,3D Markup Language for Web)是一种基于XML的文件格式,它用于创建网络上的3D和2D内容。3DMLW由3D Technologies R&D于2009年推出,它可以通过插件工作在大多数流行的浏览器中。
Technical Developments 技术开发
今天的硬件能力能够比过去更好的处理3D。更快的CPU,更快的图形处理器和显卡,以及四处可见的3D图形加速器,这些都为网络3D的出现提供了可能。
JavaScript和HTML 5.0
开发者使用JavaScript语言开发各种网络应用程序。浏览器的 JavaScript引擎性能的提升,使得网络3D成为可能。比如说,IE9中的JavaScript引擎将可以使用宿主机器的图形处理器来快速的处理图形相关的任务。同样的,Mozilla也增强了其Firefox浏览器的JavaScript引擎,他们使用了一种追踪( tracing )技术,该技术通过优化代码的执行方式来提升性能。
JavaScript的访问HTML 5.0的能力可以让开发者更加方便的将视频,音频,3D和2D内容无缝合并到应用程序中。HTML5.0中的画布(canvas)元素同样也会促成互联网3D。该元素使得浏览器可以通过它们的JavaScript引擎,本能(无需插件技术)且动态的渲染位图图片,使得渲染3D变得更加容易。
WebGL
Mozilla 基金会是一个创建和支持开源应用程序的组织,Khronos是一个为并行计算,图形和动态媒体设计标准的联盟。它们俩正在开发WebGL。该技术可以在不需要插件的情况下为网络带来硬件加速的3D图形效果。任何支持Khronos的OpenGL或OpenGL ES规范的浏览器都可以运行WebGL。
跨语言跨平台的OpenGL定义了一组API,以供开发出提供2D和3D图形效果的应用程序。而OpenGL ES(Embedded Systems)规范为从简单元素(或者成为图元,比如线或者多边形)绘制3D场景提供了编程工具。OpenGL ES可以工作在智能手机这样的小型设备上。然而,这些能力不能离开插件的支持。许多用户倾向于不使用插件,因为它们不易安装,且难于排除故障和管理。
WebGL使得浏览无需插件便可渲染3D内容。该技术提供可以让软件通过编程访问PC机3D渲染硬件的API,从而扩展了OpenGL。本质上,WebGL提供了JavaScript应用程序和OpenGL软件库之间的连接,而后者负责访问宿主系统的图形处理器。这可以充分利用硬件的能力来渲染3D内容。
Khronos已经建立了一个WebGL工作组,该工作组将在今年上半年发布 WebGL的第一个release版本。但是程序人员已经开始把WebGL构建到Firefox的开发版和Webkit开源浏览器引擎中,该浏览器引擎被苹果的Safari和Google的Chrome浏览器所使用。
O3D
Google也是 WebGL工作组的成员,但同时Google也开发了一款基于浏览器的3D图形技术,O3D,如下图所示。
图片来源:http://code.google.com/apis/o3d/docs/techoverview.html
O3D是一个基于IE,Firefox,Safari 和Chrome这些浏览器的插件。Google现在正在把该技术构建到Chrome中,并希望未来能够直接构建到其它的浏览器中。O3D可以在Windows,Mac,Linux上运行,它是一套开源的JavaScript API,用于开发互动的3D图形应用程序,比如游戏,广告,或者虚拟产品展示,都运行在一个浏览器里。该API为基于JavaScript的程序提供了接口,使得JavaScript应用程序可以与包含在O3D插件中的O3D核心软件进行通信,从而直接利用计算机的图形硬件。
Google 发言人说O3D是一个保留模式(retained-mode)的技术,因为它只设置场景一次,然后每帧只绘制场景改变的部分。与WebGL这样的立即模式(immediate-mode)技术不同,O3D不会每次都重新绘制整个场景。这提供了更好的性能,但却弱化了开发者的控制能力。
Adobe Flash
Adobe正在将更强的3D能力加入到它所属的Flash浏览器插件中。Adobe是在2008年Flash Player 10的发行版中推出了3D能力。该技术通过加入新的类和方法,从而包含了对于3D效果的支持,尤其可以通过Flash的 ActionScript编程语言在三维空间中设置一个物体的位置。通过这种方法,即便是没有丰富3D经验的开发者也可以通过在2D中设计物体来制作3D内容,并能通过新加入的类和方法修改它们。Flash Player 10.0,现在是beta版,将会为智能手机和其他移动设备带来3D效果。
Standing in the Way 在路上
在3D Web真正成熟之前,它还需要克服重重的障碍。
比如说,插件,在某些情况下,时常会导致浏览器崩溃或者其他的问题。让浏览器能够天生就有渲染3D的能力,并且克服当前3D技术不能和所有的浏览器、操作系统和应用程序兼容的问题,这些都是很大的挑战。另外,缺乏标准化也是一个问题。如果没有标准化,网络将会出现各种不同的互不兼容的格式和技术,这使得开发者为了在不同的浏览器上运行需要创建很多版本的程序。同时,开发网络上的3D内容需要很长的开发时间,并且很少的开发者对该方法很熟悉。
对于上网本和智能手机使用的迅猛增长,这些具有较慢的处理器,意味着更多的人在使用无法运行3D内容的设备。技术硬件能力和网络带宽已经大幅度的提升了,但它们仍然不能满足高度复杂的3D模型的需求。并且网络3D技术的推崇者们并没有为普通用户设计在线3D技术,这是在犯和VRML一样的错误。
Conclusion 结论
WebGL是一个非常有趣的网络3D开发技术,因为它无需插件。一旦WebGL推出,我们将在网络上看到3D内容的迅速增多。然而,3D在10年内是很难成功的,直到迅猛增长的流行上网本和智能手机拥有足够强大的处理器能力来播放数据密集的内容。不过总有一天,3D将在网络上做到像现在视频所做到的一样,网络3D的时代终会到来。
Recent Comments