3技术方案3.1软件架构目前,软件开发架构主要包括C/S和B/S两种基本架构,对于虚拟场馆软件的开发,它们各有其优缺点。
(1)C/S架构C/S也可以称之为桌面软件,软件的大部分资源部署在客户端,每个客户端需要安装桌面软件。
对于虚拟现实的应用,由于C/S架构不受带宽的影响,其模型、纹理、图片等资源存储于客户端,大量的计算也由客户端完成,因此,软件运行更为流畅,能支持大型的复杂场景,能实现复杂的特殊效果。
但C/S部署维护困难,制约了用户的使用数量,一旦软件更新,所有的客户端都需要升级。
另外,由于所有数据在客户端存储,存在较大的安全隐患。
(2)B/S架构B/S是随着互联网技术发展,逐渐发展的一种软件架构。
软件的所有资源部署在服务器,客户端通过浏览器直接访问,无需安装任何软件。
对于虚拟现实的应用,带宽对B/S架构的影响较大,由于客户端受浏览器等资源的制约,对用户的体验性(如场景精细程度、光照等特效等等)有一定的影响。
但随着Web3D技术和富客户端技术的发展,客户端浏览器对计算资源的制约已经越来越小,用户体验效果也基本上可以与C/S架构的的桌面的软件媲美。
基于B/S架构的软件可以非常方便的挂接到办公自动化或门户网站,从而非常方便用户的使用和访问,提高用户访问量,加大软件的使用效率。
其次,由于B/S架构的软件集中部署在服务器,客户端无需安装任何软件,直接使用IE浏览器(第一次访问可能自动安装相关插件)即可使用,方便用户使用的同时,也是得软件的升级时,只需更新服务器的相关资源,更为灵活方便。
另外,由于软件的资源部署在服务器,使得软件所使用数据的安全性更高。
综上所述,建议采用WEB3D技术,使用B/S架构构建本软件。
下面就系统所采用的核心技术:WEB3D技术进行分析论证。
3.2WEB3D技术目前3D技术也在飞速发展。
从VRML到Web3D技术,虚拟现实技术正一步步走进生活,成为现实。
网络三维技术的出现最早可追溯到VRML。
VRML(虚拟现实建模语言)是互联网3D图形的开放标准,是3D图形和多媒体技术通用交换的文件格式,它基于建模技术,描述交互式的3D对象和场景,不仅应用在互联网上,也可以用在本地客户系统中,应用范围极广。
由于网上传输的是模型文件,故其传输量大大小于视频图像。
1998年。
VRML组织把自己改名为Web3D组织,同时制订了一个新的标准,Extensible3D(X3D),到了2000年春天,Web3D组织完成了VRML到X3D的转换。
X3D整合正在发展的XML、JAVA、流技术等先进技术,包括了更强大、更高效的3D计算能力、渲染质量和传输速度。
Web3D技术是实现网页中虚拟现实的一种最新技术。
很多公司开发了Web3D引擎,从而加速的Web3D的制作与开发,下面主要介绍目前一些比较主流的Web3D引擎及相关技术。
3.2.1WebMaxWebMax由上海创图网络科技发展有限公司研发,是国内第一款Web3D发明专利软件,也是2010年上海世博会在国内唯一指定的Web3D技术。
它的最大特点在于它的压缩比,可以达到120:1,因此成品的文件量较小,网络发布上有天生的优势,画面方面也比较细腻,互动方面需要配合一些代码编写能力,扩展性也较强,而且对客户端机器的配置要求很低,不用过多担心浏览群的流失,目前软件更新到3.0版,在视觉效果、操作面板、互动功能、设计开发方面做了非常大的提高。
WebMax的核心为Sun3D引擎,Sun3D是一套Web3D软件开发包,它可以用于开发各种三维网页应用项目,如在网页上运行的三维游戏、在网页上运行的虚拟店铺、以及在网页上运行的仿真培训系统等等。
开发一个三维网页(Web3D)应用包含三维建模、数据压缩、网络传输、实时渲染、代码逻辑五个环节。
Sun3D实现了后面四个环节,并为第一个环节提供了通用的数据接口,让用户可以方便的使用3DSMax和Maya等建模工具导出三维数据,其架构如下图所示。
Sun3D具有如下特征:●集三维数字内容压缩与解压、多通道流式网络传输、逼真三维图形渲染、高性能人机交互于一身,实现了在三维技术在网页上的应用,对用户终端电脑的硬件配置要求较低。
●三维数字内容压缩技术压缩比可以达到120倍以上,进行实时的码流转换,兼容各种带宽向IP网络进行实时传输。
●可以流畅的同屏渲染100万个三角面,在最普通性能的兼容PC机环境下,可以流畅运行大规模的三维数据。
●支持三维动画技术,包括关键帧动画、骨骼动画、顶点动画。
●支持设备字体,图片、视频,音频等多媒体素材的导入和显示播放。
●提供了与Flash的双向通信接口,在保留Flash交互功能的同时,将Flash文件通过GPU渲染,不仅保证了Flash图形的矢量特性,而且实现了比Flash播放器更高的渲染效率。
●提供了各种高级材质的Shader库,包括实时的动态光影、真实水面、法线贴图、动态贴图等,还提供了各种高级后期特效Shader库,包括HDR、镜头光斑等,Sun3D还允许用户对Shader进行自定义编辑。
●提供了JavaScript和Lua脚本编辑器,并可以进行断点调试,极大的方便了用户实现程序逻辑,排查程序Bug。
●提供文件动态下载和场景动态加载的功能,让用户可以根据需要从服务器端获取文件。
●提供3DSMax和Maya数据输出插件,让用户可以简单方便的导出3DSMax和Maya建立的场景和角色。
●网页播放器最小可以控制在300K以内,并可自动升级,安装过程非常简单快捷。
下面是使用WebMax3.0在虚拟场馆方面开发的相关软件图片。
3.2.2VRPIEVRP是中视典公司研发的一款虚拟现实引擎,其包括的产品如下图所示。
VRP系列产品及其用途如下表所示:3.2.3Converse3DConverse3D北京中天灏景网络科技有限公司开发的一款Web3D 引擎。
Converse3D主要包括以下系列软件:(1)Converse3D核心引擎核心引擎是整个虚拟现实系统的核心部分,包括场景管理、资源管理、角色动画、Mesh物体生成、3dmax数据导出模块、粒子系统、LOD地形、UI、服务器模块等。
支持3dsmaxMesh物体、角色动画、相机动画、烘焙贴图等各种数据的导出与引用;支持脚本配置粒子系统和UI;支持顶点渲染和像素渲染。
(2)C3D-Creator三维场景编辑器构建三维场景,是C3D虚拟现实系列产品所共同依赖的场景编辑器,在其中创建模型、界面、调整材质、设置交互及各种特殊效果。
(3)C3D-SDK二次开发工具包用于虚拟现实项目的二次开发,可构建系统级大型项目,广泛应用于工业、农业、石油、电力、虚拟会展、虚拟商城等行业。
(4)C3D-Web3D三维网络展示平台实现三维场景的网络展示,用户通过IE等主流浏览器便可浏览三维场景。
广泛应用于电子产品、工业产品、数字城市等的分布式网络展示。
(5)C3D-Community虚拟社区可实现基于网页的多人在线角色扮演互动交流系统,用于多人协同应急演练、虚拟会展、虚拟商城等。
(6)C3D-PhycX物理引擎用于模拟物理现象,可模拟刚体运动、流体运动、布料等物理效果,物体之间的相互作用精准而高效。
(7)Converse3D多通道环幕立体投影系统用于多通道环幕立体展示,软件弧形矫正、边缘融合,被动式立体投影,高速帧同步。
(8)C3D-Industry工业仿真可实现工业领域中诸如虚拟培训、虚拟装配、虚拟生产线等功能。
下面是使用Converse3D开发的相关软件图片。
3.2.4其他技术(1)Java3DJAVA3D是建立在JAVA2(JAVA1.2)基础之上的,JAVA3D提供了一个非常完善的API,主要包括:生成简单或复杂的形体(也可以直接调用现有的三维形体)●使形体具有颜色、透明效果、贴图。
●可以在三维环境中生成灯光、移动灯光。
●可以具有行为(Behavior)的处理判断能力(键盘、鼠标、定时等)●可以生成雾、背景、声音等。
●可以使形体变形、移动、生成三维动画。
●可以编写非常复杂的应用程序,用于各种领域如VR。
(2)blaxxun3D和Shout3Dblaxxun3D和Shout3D是一个基于JAVA applet的渲染引擎,它渲染特定的VRML结点而不需要插件的下载安装。
他们都遵循VRML、X3D规范。
●Shout3D支持的特征包括:●使用插件直接从MAX中输出3D内容和动画。
●支持直接光、凹凸、环境、Alpha、高光贴图模式以及之间的结合。
●支持光滑组和多重次物体贴图。
●使用六张图像作为全景背景。
●骨骼变形,支持Character Studio。
●支持多个目标对象之间的变形动画。
blaxxun3D(B3D)则是Brilliant Digital娱乐公司的产品,Brilliant于Siggraph2000大会上发布了他们给3d studio max提供的b3d技术。
Brilliant的程序员开发了一个数据压缩和发布技术,使得使得在窄带下也能够实现3D数据流的传输。
它引入了以对象为基础的数据库将数据流和所存贮的数据连接起来。
然后角色按情节指令进行动画。
艺术家和动画师可以直接从3d studio max中直接输出动画到b3d授权环境下,在那里文件被压缩并使用Brilliant的数字播放技术发布到web上。
B3D独特之处是可制作具宽频效果的立体动画,并透过互联网传送至窄频用户。
这些档案占用空间小﹑下载时间短及全屏幕显示的互联网立体动画内容。
凭着这项崭新的立体动画技术,客户可将既具互动性﹑又富创意的内容传送予目标观众。
Brilliant Digital播放器提供对实时灯光及实时阴影的直接控制,并且它不依赖点的颜色来模拟这些效果。
这一切都给动画师提供了将同样的角色放置于不同场景不同灯光条件下的非常大的灵活性。
(3)Cult3dCult3D是瑞典的Cyco re公司推出的一种Web3D技术,其基础思想是利用现有的网络技术和强大的3D引擎在网页上建立互动的3D对象。
Cult3D的内核是基于Java的,它也可以嵌入客户自己开发的Java类,因此具有很强的交互和扩展性能。
Cu lt3D是一个跨平台的3D渲染引擎,通过它可以向所有网络用户传输实时交互性物体。
3.3技术可行性分析。