Web3D技术概述
网络三维技术的出现最早可追溯到VRML。VRML(Virtual Reality Modeling Language)即虚拟现实建模语言。 VRML开始于20世纪90年代初期。
1994年3月在日内瓦召开的第一届WWW大会上,首次正式提出了VRML这个名字。 1994年10月在芝加哥召开的第二届WWW大会上公布了规范的VRML1.0草案。
1996年8月在新奥尔良召开的优秀3D图形技术会议-Siggraph'96上公布通过了规范的VRML2.0第一版。它在 VRML1.0的基础上进行了很大的补充和完善。它是以SGI公司的动态境界Moving Worlds提案为基础的。
1997年12月VRML作为国际标准正式发布, 1998年1月正式获得国际标准化组织ISO批准简称VRML97。VRML97只是在VRML2.0基础进行上进行了少量的修正。
VRML规范支持纹理映射、全景背景、雾、视频、音频、对象运动、和碰撞检测--一切用于建立虚拟世界的所具有的东西。 但是VRML并没有得到预期的推广运用,不过这不是VRML的错,要知道当时14.4k 的modems是普遍的。VRML是几乎没有得到压缩的脚本代码,加上庞大的纹理贴图等数据,要在当时的互连网上传输简直是场噩梦。
1998年。VRML组织把自己改名为Web3D组织,同时制订了一个新的标准,Extensible 3D (X3D),到了2000年春天,Web3D组织完成了VRML到X3D的转换。X3D整合正在发展的XML、JAVA、流技术等先进技术,包括了更强大、更高效的3D计算能力、渲染质量和传输速度。
在此期间,一场Web3D格式的竞争正在进行着。Adobe Atmosphere创建网络虚拟三维环境的专业开发解决方案、还有Macromedia Director 8.5 Shockwave Studio
最近一些厂商瞄准了一个市场,就是从二维图像生成三维物体。一般都是通过拍摄一个物体的多个方向,再由特殊的软件转化为3D网格。象viewpoint、realVIZ、mmersion。
尽管出现了如此之多的解决方案,难道让我们每个人都跳上了Web3D的列车了吗?一些困难和障碍仍然存在。
首先是没有统一的标准。每种方案都使用不同的格式和方法。Flash能够在今天大行其道是因为它是唯一的,JAVA在各平台得到运用也因他是唯一的。没有标准,3D在Web上的实现过程还将继续挣扎。 另外插件的问题也是一个困绕。几乎每个厂商开发的标准都需要自己插件的支持,这些插件从几百K到几兆不等,在带宽不理想的条件下必然限制了一部分人的使用热情。不妨让我们浏览一下这些在web3d中划地自治的诸侯们:
Java3D和GL4Java(OpenGl For Java)
JAVA3D可用在三维动画、三维游戏、机械CAD等领域。
可以用来编写三维形体,但和VRML不同,JAVA3D没有基本形体,不过我们可以利用JAVA3D所带的UTILITY生成一些基本形体如立方体、球、圆锥等,我们也可以直接调用一些软件如ALIAS、LIGHTWARE、3DS MAX生成的形体,也可以直接调用VRML2.0生成的形体。
可以和VRML一样,使形体带有颜色、贴图。
可以产生形体的运动、变化,动态地改变观测点的位置及视角。
可以具有交互作用,如点击形体时会使程序发出一个信号从而产生一定的变化。
可以充分利用JAVA语言的强大功能,编写出复杂的三维应用程序。
JAVA3D具有VRML所没有的形体碰撞检查功能。
作为一个高级的三维图形编程API,JAVA3D给我们带来了极大的方便,它包含了VRML2.0所提供的所有功能。
这里有一段国内资深3d程序员的评论:
GL4Java、VRML、JAVA3D的比较
由于OPENGL的跨平台特性,许多人利用OPENGL编写三维应用程序,不过对于一个非计算专业的人员来说,利用OPENGL编写出复杂的三维应用程序是比较困难的,且不说C/C++语言和java的掌握需要花费大量时间精力,当我们需要处理复杂问题的时候,我们不得不自己完成大量非常繁琐的工作。当然,对于编程高手来说,OPENGL是他们发挥才能的非常好的工具。
VRML2.0(VRML97)自1997年12月正式成为国际标准之后,在网络上得到了广泛的应用,编写VRML程序非常方法(VRML语言可以说比BASIC、JAVAs cript等语言还要简单),同时可以编写三维动画片、三维游戏、用于计算机辅助教学,因而其应用前景非常广阔尤其适合在中国推广应用。不过由于VRML语言功能目前还不是很强(如目前没有形体之间的碰撞检查功能),与JAVA语言等其它高级语言的连接较难掌握,因而失去了一些计算机高手的宠爱。但我们认为,我们可以让大学里的文理科学生利用VRML编写多媒体应用程序,让学生很快地对编写程序感兴趣,从而使国内的计算机水平得到提高。DIRECT3D是Microsoft公司推出的三维图形编程API,它主要应用于三维游戏的编程,目前相关的学习资料难于获得,由于它一般需要VC等编程工具进行编程,需要编程人员具有较高的C++等高级语言的编程功底,因而难以普及。
JAVA3D是建立在JAVA2(JAVA1.2)基础之上的,JAVA语言的简单性使JAVA3D的推广有了可能。OPENGL和JAVA3D之间的比较可以看成汇编语言与C语言之间的比较,一个是低级的,一个是高级的(也许这样比较不太恰当)。JAVA3D给我们编写三维应用程序提供了一个非常完善的API,它可以帮助我们:
生成简单或复杂的形体(也可以直接调用现有的三维形体)
使形体具有颜色、透明效果、贴图。
可以在三维环境中生成灯光、移动灯光。
可以具有行为(Behavior)的处理判断能力(键盘、鼠标、定时等)
可以生成雾、背景、声音等。
可以使形体变形、移动、生成三维动画。
可以编写非常复杂的应用程序,用于各种领域如VR。
Fluid3D
由于Fluid3D并不是一个Web编写工具,因此它着眼于强化3D制作平台的性能。直到最近才公诸于世的Fluid3D插件填补了市场 的一个空白,尽管到目前为止它的应用范围还相当有限。它的主要功能是可以用来传输高度压缩的3D图像,而这种图像的下载通常是相当麻烦和耗时的。它的运用有助于使Web的3D技术更实用和切合实际,使之对桌面用户而言更有乐趣。
Superscape(VRT)
Superscape VRT是Superscape公司基于Direct3D开发的一个虚拟现实环境编程平台。它最重要的特点是引入了面向对象技术,结合当前流行的可视化编程界面,另外,它还具有很好的扩展性。 用户通过VRT可以创建真正的交互式的3D世界,并通过浏览器在本地或Internet上进行浏览。
Vecta3D
它是3DS MAX的一款插件,可生成输出FLASH的文件与Adobe Illustrator的AI文件。
Viewpoint(Metastream)
Viewpoint Experience Technology (简称VET)的前身是由metacreation和Intel开发的metastream技术。提到metacreation,相信不少人曾对这家有传奇色彩的公司感兴趣过,他出品的软件虽算不上什么大手笔,却个个功能极具特色,像有名的Bryce、Poser、KPT滤镜等。奇怪的是为了全面发展metastream技术,matacreation卖光了他所有的产品,并把自己名字改为Metastream。
在2000年夏,Metastream购买了Viewpoint公司并继承了Viewpoint的名字。Viewpoint data lab是一家专业提供各种三维数字模型出售的厂商,Metastream收购Viewpoint的目的是利用Viewpoint的三维模型库和客户群来推广发展metastream技术。
在mts2.0(metastream)时代metastream的技术优势就已经表现出来。它生成的文件格式非常小,三维多边形网格结构具有scaleable(可伸缩)和Steaming(流传输)特性,使得它非常适合于在网络上的传输。你可以在三维数据下载的过程中看到一个由低精度的粗糙模型逐步转化为完整的高精度模型过程。
VET(也即mts3.0)继承metastream以上特点,并实现了许多新的功能和突破,想当年Viewpoint被PC-Magzine评为"Top100计算机产品",可谓风光一时。 在结构上它分为两个部分,一个是储存三维数据和贴图数据的mts文件,一个是对场景参数和交互进行描述的基于XML的mtx文件。它具有一个纯软件的高质量实时渲染引擎,渲染效果接近真实而不需要任何的硬件加速设备。VET可以和用户发生交互操作,通过鼠标或浏览器事件引发一段动画或是一个状态的改变,从而动态地演示一个交互过程。VET除了展示三维对象外还犹如一个能容纳各种技术的包容器。它可以把全景图像作为场景的背景。把flash动画做为贴图使用。
Viewpoint的主要运用市场是作为物品展示的产品宣传和电子商务领域。许多著名的公司与电子商务网站使用了此技术作为产品展示。虽然不如Cult3D那样普及,但凭借着强大的功能还是赢得了不少用户的青睐,像Fuji、Dell、Sony等公司,如图3所示。
pulse3D
Pulse在娱乐游戏领域发展已经有好多年的历史,现在,Pulse凭着在游戏方面的开发经验把3D带到了网上,他瞄准的目标市场也是娱乐业。Pusle提供了一个多媒体平台,囊括2D、3D图形、声音、文本、动画。
Pusle平台分为三个组件:Pusle Player,Pusle Producer和Pusle Creator。 Pusle Player也即播放器插件,除了为IE和Netscape提供的浏览器插件外,Pusle还得到了Apple和Real net work的支持,在Quicktime和RealPlayer中已经包含了Pulse播放器。Pulse Producer:是用来在三维动画工具中输出Pulse所需数据的插件。目前支持的有3d studio max和Maya的插件。能够输出到Pulse中的数据包括:几何体网格、纹理、骨骼变形系统(支持Character Studio),Morph网格变形动画,关键帧动画,音轨信息,摄像机信息。pulse还支持从Vrml和BioVision的输入。Pulse Creator:这是Pulse总的组装平台。导入Pulse Producer生成的数据后,Pulse Creator进行以下的功能操作:
加入交互性、打光、压缩、 流传输和缓存。
Atmosphere
这是在图像处理和出版领域具有权威地位的Adobe公司前不久才推出的一个可以通过互连网连接多用户的三维环境式在线聊天工具。在Atmosphere中浏览的感觉类似于玩DOOM类三维视频游戏。所不同的是Atmosphere场景可以通过Internet连接多个用户,连接到同一场景的用户可以彼此实时地看到代表对方的对象(avatar)位置和运动情况,并且可以向所有用户发送聊天短讯。Atmosphere环境提供了对自然重力和碰撞的模拟,使浏览的感受极具真实性。
值得注意的是Atmosphere使用了viewpoint的技术,安装Atmosphere的浏览器插件同时也安装了Viewpoint插件。Atmosphere场景中的三维对象包括由参数定义的基本几何体和viewpoint对象。viewpoint技术提供了对三维几何体高质量的压缩和实时渲染,Adobe直接使用viewpoint技术,既得到了很好的效果,又免除了自己开发的过程。
Atmosphere场景的开发相对来说比较容易。Adobe提供了制作工具Atmosphere Builder,目前此软件还处于Beta版本的测试阶段,可在Adobe的站点免费下载。
从场景的质量看Atmosphere还比较粗糙;从短信息聊天功能上看,只支持一对多的方式;从扩展性上看,Atmosphere目前只能在浏览器和它自己的播放器内运行,还不支持嵌入其它的环境中;从服务器端支持看,Adobe还未提供用来处理多用户交互信息传送的服务器端程序,目前建立的Atmosphere场景只能连接到Adobe的服务器上使用。
shockwave3D
Macromedia的shockwave技术,为网络带来了互动的多媒体世界。shockwave在全球拥有一亿三千七百万用户。2000年8月SIGGRAPH大会,intel和Macromedia联合声称将把Intel的网上三维图形技术带给Macromedia shockwave播放器。现在Macromedia Director shockwave studio8.5已经推出,其中最重大的改变就是加入了shockwave3D 引擎。
其实在此之前已经有Director的插件产商为之开发过3D插件,而且有的是shockwaveable的(意味着可以运用于网络并且能够流式传输)。3Dgroove,主要是用于开发网上三维游戏,他的作品多次在www.shockwave.com出现,智能和交互性已经具有很高的水准。3DDreams,也提供了完整的三维场景建造和控制功能,但在速度上感觉较吃力。
Intel的3D技术具有以下特点。对骨骼变形系统的支持;支持次细分表面,可以根据客户端机器性能自动增减模型精度;支持平滑表面、照片质量的纹理、卡通渲染模式,一些特殊效果如烟、火、水。
Director为shockwave3D加入了几百条控制lingo,结合Director本身功能,无疑在交互能力上shockwave3D具有强大的优势。鉴于Intel和Macromedia在业界的地位,hockwave3D自然得到了众多软硬件厂商的支持。Alias|Wavefront, Discreet,Softimage/Avid,Curious Labs在他们的产品中加入了输出W3D格式的能力。Havok为Shockwave3D加入了实时的模拟真实物理环境和刚体特征,ATI 、NVIDIA也发布在其显示芯片中提供对Shockwave3D硬件加速的支持。
前景和运用。从画面生成质量上看,Shockwave3D还无法和Viewpoint、Cult3D抗衡,因此对于需要高质量画面生成的产品展示领域,它不具备该优势。而对于需要复杂交互性控制能力的娱乐游戏教育领域,Shockwave3D一定能够大显身手。
blaxxun3D 和 Shout3D
blaxxun3D和Shout3D是一个基于JAVA applet的渲染引擎,它渲染特定的VRML结点而不需要插件的下载安装。他们都遵循VRML、X3D规范
Shout3D支持的特征:
使用插件直接从MAX中输出3D内容和动画。
支持直接光、凹凸、环境、Alpha、高光贴图模式以及之间的结合。
支持光滑组和多重次物体贴图。
使用六张图像作为全景背景。
骨骼变形,支持Character Studio。
支持多个目标对象之间的变形动画。
blaxxun3D则是Brilliant Digital娱乐公司的产品,这是一个座落在洛杉矶并涉足澳大利亚电脑游戏业的公司。Brilliant于Siggraph2000大会上发布了他们给3d studio max提供的b3d技术。
Brilliant的程序员开发了一个数据压缩和发布技术,使得使得在窄带下也能够实现3D数据流的传输。它引入了以对象为基础的数据库将数据流和所存贮的数据连接起来。然后角色按情节指令进行动画。艺术家和动画师可以直接从3d studio max中直接输出动画到b3d授权环境下,在那里文件被压缩并使用Brilliant的数字播放技术发布到web上。
B3D独特之处是可制作具宽频效果的立体动画,并透过互联网传送至窄频用户。这些档案占用空间小﹑下载时间短及全屏幕显示的互联网立体动画内容。凭着这项崭新的立体动画技术,客户可将既具互动性﹑又富创意的内容传送予目标观众。Brilliant Digital播放器提供对实时灯光及实时阴影的直接控制,并且它不依赖点的颜色来模拟这些效果。这一切都给动画师提供了将同样的角色放置于不同场景不同灯光条件下的非常大的灵活性。
Plasma
从功能来看,Plasma可以说是3ds max的Web 3D版本,简洁的界面,直观的用法,强大的Havoc引擎,从各种角度来说都是一个相当不错的软件。而且,Plasma支持Flash、Shockwave和VRML的输出,对于大部分3D设计师来说,这些功能已经很足够了。但是,也有不少人认为,Plasma有点像是专门为Shockwave设计的建模工具,应用范围大大缩小了。而且,Plasma的内容输出到Shockwave以后,固然能够表现出不错的质量,但是在Flash里面却并非如此,这似乎与注重写实感的Web 3D项目开发用途有些不符。另外,它在支持VRML输出方面的功能比起3ds max或者其他软件来说并不占优势。
Havoc引擎是Plasma最大的特征之一,但是它只能在Shockwave里面实现,而Flash仍然只是支持关键帧方式,VRML里面则根本不能实现任何Havok引擎的效果。所以,不少人都觉得,与其说Plasma是Web 3D软件,不如说,它是专门为Shockwave3D而设计的3D建模工具。
因为Plasma是以Discreet公司的3D技术为基础的,所以性能相当稳定。而且它还考虑到平面用户不熟悉三维界面的问题,特地设计了十分具有亲和力的用户界面。其实大家只要看一下Plasma的界面,就会发现它与Photoshop和Illustrator的界面十分相似。
Plasma可以说是世界上最早的专门为2D/3D Web用户设计的三维建模、动画和渲染软件。作为3D建模工具,它完全继承了3ds max强大的建模功能,而且支持Web Rendering(Flash Renderer)和Exporting Tool,另外它还统合了Macromedia公司的Flash、Shockwave 3D等设计工具和文件格式。从这些现象看来,Discreet推出Plasma的一个很大的目标就是,通过让平面设计师掌握3D工具,从而能够更快地生成Web 3D内容。
Plasma的主要功能和特征
可以转换为Shockwave 3D文件 Plasma文件可以输出成Web 3D文件——Shockwave 3D Scene Export,而且还可以导入到Director8.5。此外,Plasma还可以输出为*.AL(Illustrator文件)、*.DXF(AutoCad文件)和*.VRL(VRML文件)等三种格式。
Flash动画制作 这可以说是Plasma最重要的功能之一。Plasma有两种渲染方式,一种是3ds max中Bitmap方式的Scanline渲染方式,另外一种是矢量方式的Flash渲染方式。这样,以前Flash用户需要经过长时间手动操作方能完成的建模过程就可以通过Plasma轻松完成了,而且能够节省大量的时间和费用。Flash渲染方式不支持纹理,所以,渲染后的画面有明显的漫画风格。
3ds max的基本建模技法和贴图、动画功能 在Plasma中可以执行Bone&Skin和IK动画等功能。
通过Havok执行Shockwave 3D的功能 Havok原来是3ds max的插件,Plasma中也内置了这个插件。因为Shockwave中支持Havok的所有功能,所以在Plasma中可以通过Havoc执行Shockwave 3D功能。
Cult3d
位于瑞典的Cycore 原是一家为Adobe After Effect和其它视频编辑软件开发效果插件的公司。为了开发一个运用于电子商务的软件,Cycore动用了50多名工程师来开发他的流式三维技术。现在,Cycore 的Cult3D技术在电子商务领域已经得到了广泛的推广运用。
和Viewpoint相比,Cult3D的内核是基于JAVA,它可以嵌入JAVA类,利用JAVA来增强交互和扩展,但是对于Viewpoint,他的Xml构架能够和浏览器与数据库达到方便通信。Cult3D的开发环境比Viewpoint人性化和条理化,开发效率也要高得多。
Cult3D技术信息
目前支持的系统平台和浏览器 Internet Explorer / Microsoft Office/Netscape v4.x/Adobe Acrobat
视窗 95/98/SE/ME
视窗 NT/2000 (x86)
MacOS (PPC) (非微软办公系列)
Linux 2.0 / Linux Red Hat
Solaris
硬件要求
至少奔腾 MMX 233 MHz or 100% 兼容/支持dx7以上的显示卡/64mb以上内存
推荐:PIII800Mhz 256mbSD/DDR ram Geforce2
浏览器插件文件大小 Internet Explorer/ActiveX: 1.2 MB
Netscape: 1.2 MB
Adobe Acrobat: 1.9 MB (win) 2.2 MB (mac)
谁会是Web3D之战最后的赢家?
无法定论。如果你要发布你的产品到网络上观看,viewpoint或Cult3D都是不错的选择;如果你要开发三维在线游戏,我看好shockwave3D;如果你要在网上播放一场交互3D电影,那B3D能提供很好的解决方案,而对于java3d/Gl4java,那永远是行家里手青睐的角色。
你想要为你的web加入交互的三维吗?是的,那你有很多东西要学。现在还很难定论哪3D技术会是最佳的选择,而且也无法选择。但是现在就开始的话将为你的开发积累经验,毕竟,最主要的过程和时间阶段是建立三维场景的过程,而不是转为网上三维格式。