可用于虚拟建筑环境的Web3D技术初探-1
Web3D技术是随着互联网与虚拟现实(Virtual Reality)技术的发展而产生的,其目的在于在互联网上建立三维的虚拟世界.目前,Web3D技术在电子商务,远程教育,工程技术,计算机辅助设计等领域已经获得了广泛的应用.
将Web3D技术引入建筑环境分析与再现过程中,建立基于Web的虚拟建筑环境具有特殊的意义,虚拟的建筑环境提供了设计结果的仿真效果,更能使得建筑师,设计师在全世界范围内通过Internet进行交流.
VRML虚拟现实建模语言是Web3D应用中应用最为广泛的三维场景描述语言,VRML除定义了三维应用系统中常用的语言描述规范外,还定义了一些简单的行为特征的描述功能,VRML的不足之处在于其仅仅是一种描述语言,缺乏复杂行为及交互的编程支持.
很多商业公司推出的一些Web3D解决方案大都针对特定的行业应用,不能适合虚拟建筑环境的要求,因此需要对此问题加以解决.本文提出了基于Web的虚拟建筑环境的概念,借以区分Web3D技术在其它行业的应用情况及特点.
针对VRML及其它Web3D解决方案的不足之处,结合虚拟建筑环境的特点,笔者建立了综合应用Java3D及VRML建立基于Web的虚拟建筑环境应用框架.本文分析VRML以及Java3D的技术特点,并给出了VRML及Java3D在虚拟建筑环境中应用的一些实现细节,如采用LOD简化场景,在三维场景中以直接拾取场景对象的方式获取虚拟建筑属性等.文章还提出了采用VRML及Java3D建立虚拟建筑环境应用中几个重要的待解决的问题,这些问题具有一定的代表性,如在虚拟环境漫游中采用地形跟踪等,有些问题给出了一些实现的基本设想,一些则仅仅作为问题提出,以期逐渐加以解决.
综上所述,本论文对VRML,Java3D等工具和虚拟环境体系作了不同程度的分析,并提出了相应的实现方案,突破了单纯采用VRML或Java3D的局限性,并给出了部分实现.
关键词:Web3D,虚拟建筑环境,VRML,Java3D,X3D
Abstract
The technic of Web3D has emerged with the development of Internet and Virtual Reality. The aim of web3D is to build virtual world on the Internet. Now, The technology of Web3D has been applied in many fields such as e-business, remote education, engineering, CAD etc.
To introduce Web3D technology to architecture environment analysis and representation has a lot of benefits. The architects and urban planers could get the simulative result scene of the building before the real construction. Most of all, they could communicate their models and ideas across the world by Internet.
VRML (virtual reality modeling language) is a descriptive language which has been widely used to deliver interactive 3D objects across the internet, addition to create static virtual scene. VRML provides several interactive mechanisms to support users to interact with the virtual scene. The pitfall of VRML is that it is only a descriptive language and is lack of programming support. It is a difficult work to build a large-scale virtual scene through complex interactions with VRML.
Many solutions developed by business enterprises often support specific applications, which are not very competent for architecture and urban design applications. Based on web technologies, the concept of virtual architecture environment (VAE) is put forward in this paper.
Taking consideration of the characteristics of VAE, a framework for VAE applications is proposed with the combination of Java3D and VRML, which can effectively make up the shortcomings of conventional solutions. Specific technologies of VRML and Java3D are Analyzed in the paper. Some detailed solutions for the realization of VAE are presented such as Level Of Details (LOD), getting properties of the objects in the virtual scene by picking mode, etc.
Some typical problems concerned with VAE are discussed with specific solutions, such as terrain following when navigating in the virtual scene, while other problems are just proposed with solution ideas or even waiting for solutions.
Keywords: Web3D,virtual architecture environment,VRML,Java3D,X3D
目 录
摘要……………………………………………………………………………………I
ABSTRACT…………………………………………
………………………………II
第一章 绪论…………………………………………………………………………1
1.1 Web3D技术概述………………………………………………………………1
1.2 基于Web的虚拟建筑环境……………………………………………………2
1.3 Web3D技术发展概况…………………………………………………………2
1.4 其它Web3D相关技术………………………………………………………3
1.4.1 无插件Web3D技术………………………………………………………3
1.4.2 3DML………………………………………………………………………3
1.4.3 基于图像的虚拟现实技术IVR…………………………………………3
1.5 相关研究机构和研究课题简介 ……………………………………………4
1.6 Web3D技术在建筑相关领域应用研究介绍…………………………………5
1.7 论文内容及介绍………………………………………………………………5
1.7.1 综合应用Java3D及VRML构建Web3D应用…………………………5
1.7.2 论文的内容介绍…………………………………………………………6
第二章 VRML虚拟现实建模语言及其在虚拟建筑环境中的应用分析……………8
2.1 VRML基本特性………………………………………………………………8
2.2 VRML的概念与体系结构……………………………………………………9
2.2.1 节点………………………………………………………………………9
2.2.2 场景图(Scene Graph)……………………………………………………10
2.2.3 虚拟场景的坐标系及变换层次……………………………………………10
2.3 VRML的事件体系……………………………………………………………11
2.4 简单的VRML场景实例………………………………………&
hellip;……………13
2.5 VRML用于虚拟建筑环境……………………………………………………14
2.5.1 VRML场景中的绿化植物造型…………………………………………14
2.5.2 在场景中采用层次细节模型(LOD)……………………………………15
2.6 与场景交互……………………………………………………………………17
2.7 场景对象的自主行为…………………………………………………………20
2.8 关于采用VRML建立虚拟建筑环境几点说明………………………………20
2.9 本章小结………………………………………………………………………20
第三章 Java3D及其在开发基于Web的三维系统中的应用分析…………………22
3.1 Java3D的特性及与VRML的比较………………………………………………22
3.2 Java3D运行环境………………………………………………………………22
3.3 Java3D场景图的结构…………………………………………………………23
3.4 创建Java3D程序……………………………………………………………25
3.5 创建形体………………………………………………………………………27
3.5.1 基本几何形体……………………………………………………………27
3.5.2 Geometry形体……………………………………………………………27
3.6 在Java3D中调用VRML场景………………………………………………28
3.7 与用户交互……………………………………………………………………30
3.7.1 采用Java的事件模型……………………………………………………30
3.7.2 行为(Behavior)对象的分析………………………………………………31
3.8 Java3D在建立虚拟建筑环境应用中的几点说明……………………………33
3.9 本章小结…………………………………………………………&h
ellip;…………34
第四章 基于Java3D和VRML的虚拟建筑环境………………………………………36
4.1 在Java3D中获取VRML节点………………………………………………36
4.1.1 VRML与Java3D的综合应用……………………………………………36
4.1.2 在Java3D中获取VRML节点……………………………………………37
4.2 在虚拟建筑环境中漫游………………………………………………………39
4.2.1 使用KeyNavigatorBehavior对象………………………………………40
4.2.2 响应鼠标事件的漫游行为………………………………………………41
4.2.3 替身(Avatar)………………………………………………………………47
4.2.4 地形跟踪…………………………………………………………………47
4.3 在三维虚拟场景中实现建筑物属性查询……………………………………48
4.3.1 建筑物属性数据的存储…………………………………………………49
4.3.2 拾取Shape3D对象………………………………………………………49
4.3.3 拾取TransformGroup对象………………………………………………51
4.3.4 查询建筑属性……………………………………………………………52
4.4 基于Java3D和VRML的虚拟建筑环境的其它问题………………………54
4.4.1 场景图的优化……………………………………………………………54
4.4.2 阴影………………………………………………………………………54
4.5 在互连网上发布程序…………………………………………………………55
4.6 本章小结………………………………………………………………………57
第五章 未来工作展望………………………………………………………………58
5.1 采用X3D描述三维虚拟场景…………………………………………………59
5.2 应用碰撞检测完善漫游行
为…………………………………………………60
5.3 基于Web的虚拟建筑环境与数据库,GIS相结合…………………………61
结论……………………………………………………………………………………63
作者在攻读硕士学位期间发表的论文………………………………………………64
致谢……………………………………………………………………………………65
第一章:绪论
1.1 Web3D技术概述
Web3D技术是随着互联网与虚拟现实(Virtual Reality)技术的发展而产生的,其目的在于在网络特别是在互联网上建立三维的虚拟世界.目前,包括VRML(Virtual Reality Modeling Language)—虚拟现实建模语言在内的各种Web3D技术在电子商务,远程教育,工程技术,计算机辅助设计等领域已经获得了广泛的应用[1].
虚拟现实(Virtual Reality)技术是一种逼真地模拟人在自然环境中视觉,听觉,运动等行为的人机界面技术[2].VR突出的技术特点是它的沉浸性(Immersionality)和交互性(Interactivity)。完整的VR系统包括视觉,听觉,触觉等子系统.从VR系统组成的角度讲,VR系统包括主机系统,场景显示系统,VR接口设备(包括方位跟踪系统,触觉传感器,声音系统组成的VR硬件及VR软件系统)[3].VR系统需要采用大量专用的硬件设备和复杂的软件支撑环境是其大规模普及的最大障碍.
网络技术及计算机硬件技术的飞速发展,网络的带宽和计算机高效的3D运算能力的提高,使三维可视化技术在互联网上得以实现。另外,计算机多媒体技术正成为我们生活的一部分.多媒体技术把文字,声音,图像,动画,视频等结合在一起,从而为人们创造了一个缤纷的多媒体世界.而Web3D的目标之一就是创造一种集网络,多媒体,三维图形,虚拟现实于一身的新型媒体。
目前的Web3D技术与虚拟现实技术相比,在逼真性等各方面还有很大的差距,但其对计算机的软硬件配置要求相对较低,具有更大的普及性.目前,Web3D技术在多个领域受到了极大的关注,许多科研机构和计算机公司都在积极的推进Web3D的应用.
1.2 基于Web的虚拟建筑环境
本文所讲"虚拟建筑环境"只是狭义的理解为与建筑物,建筑环境或是城市环境等真实的存在相对应的以计算机数据形式存在的虚拟建筑或虚拟环境.真实的世界是具体而复杂的,虚拟的建筑环境只能是抽取真实世界的个别方面,如人们关心的城市建筑与环境外部空间的视觉要素,建筑的形体构成等.虽然只是现实世界的个别方面,但虚拟建筑环境却有重要的意义,例如在城市规划与建筑设计过程中,虚拟的建筑环境提供了设计结果的仿真效果,在设计过程中改进设计本身,使设计过程更具可操作性及科学性.
将虚拟的建筑环境构建在Web之上有其特殊的意义.目前,在互联网上已经出现了不少采用Web3D技术构建的虚拟建筑.通过该技术,人们可以随时随地的通过互联网访问该建筑.用户可以进入虚拟的建筑中在任何地点观察该建筑,实现实时漫游,设计人员则可借此更有效的推敲建筑与环境的空间关系.建筑物,建筑环境,市政设施等都可以以三维数据的形式存储和再现,从而为设计者提供更直观的设计依据,更可以在Web环境下共享数据资源.
1.3 Web3D技术发展概况
1994年Mark Pesce和Tony Parisi创建了称为Labyrinth(迷宫)的浏览器,这是万维网上3D浏览器的早期原型.同年,Mark和Brian Behlendorf创立了一个邮递表,发出了为万维网上的3D应用建立正式规范的倡议.Silicon Graphics,Inc.(SGI)的Gavin Bell注意到了SGI的Open Inventor很适合作为这样的规范,他选择SGI的Open Inventor文件格式中的一些基本元素,并增加了两个必要的具有万维网特征的节点元素(WWWAnchor和WWWInline节点),在此基础上组织了一份提案.基于Open Inventor的提案被选定为未来规范的工作文档.Gavin在Tony,Rikk等人的帮助下,很快修订并制定了VRML1.0[4]①规范的草案.VRML1.0于1994年10月在第二届互联网国际会议上公布.
VRML1.0只是一个静态的描述语言,缺少某些关键特性,如动作,交互,行为等.这意味着作者不能创建一个可与用户交互的动态的虚拟场景.
1996年8月在SIGGRAPH'96会议上公布了VRML2.0.VRML2.0在动作,交互等特性有了很大的提高,1997年12月VRML作为国际标准正式发布,1998年1月正式获得ISO批准(IS
O/IEC 14772-1:1997).VRML97是VRML2.0经编辑性修订和少量功能性调整后的结果.作为ISO/IEC国际标准,VRML的稳定性得到保证,迅速的推动了网络三维技术的应用.
另外,有不少的计算机公司推出了各种不同的Web3D实现方案,如Eyematic公司的Shout3D[5],Cycore公司的Cult3D[6]等.Shout3D采用类似VRML的文件格式描述三维场景;而Cult3D则采用单独定义的文件格式,不能与其它Web3D应用兼容.Sun公司公布的Java3D则为Web3D提供了语言级的支持,Java3D是Java用于三维程序编程的一组API.Java语言面向对象和跨平台特性,使得Java3D特别适合网络环境上的应用.
1.4 其它Web3D相关技术
1.4.1 无插件Web3D技术
包括VRML在内的许多Web3D实现,用户都需要下载并安装插件.虽然很多Web3D的场景是基于VRML的,不同的厂家往往根据不同的应用对VRML进行扩展或是采用自己的解决方案,因此用户需要下载不同的插件.另外,在互联网上下载并安装应用程序存在着安全隐患.无插件的Web3D应用一般采用Java开发,用户在下载三维场景的同时,三维渲染引擎则以Applet小程序的形式被下载到客户端执行.对用户来讲,整个过程是自动进行的,并且Applet不会访问到本地资源,具有很好的安全性.Web3D场景文件与Java程序部署在服务器端,Java提供了跨不同平台的客户端的能力,对开发者而言,则实现了一次编译,到处运行.
Eyematic的Shout3D就是采用了这种解决方案.
1.4.2 3DML
3DML(3D Modeling Language)是由Flatlang Online[7]创建的标记语言,它允许使用标记创建3D虚拟场景.Flatlang Online提供了一个名为Rover的3DML浏览器,可以实现在3DML场景中漫游.3DML采用了类似XML的编码规范,但3DML实际上并不是一个XML的应用.3DML与一个实际的XML词表非常接近,但是3DML违反了大量的XML规则,如3DML文件中采用了大量的"&"符号,同时3DML不支持实体和默认属性值.3DML的性能是以削减了图形的复杂性为前提的,因而复杂的场景对于3DML是难于实现的.3DML从技术上讲虽然不是XML应用,但是它显示了XML在虚拟三维场景描述方面的可行性.
1.4.3 基于图像的虚拟现实技术IVR
IVR(Imaged Based Virtual Reality)技术是在基于图像的建模与渲染IBR(Image Based Modeling & Rendering)技术的基础上发展的,主要是为了解决如何在普通计算能力的计算机上实现真实感图形的实时绘制问题.IVR基于预先生成的图像或所谓的环境映射图,来实时生成不同视点的场景画面[8].
同基于几何的建模与渲染(Geometry Based Modeling & Rendering)技术相比,IVR有其特殊优势:
(1)图形绘制速度独立于场景的复杂度,仅与要生成的图像的分辨率有关.
(2)预先存储的图像即可是计算机生成的,也可是实际拍摄的图片.IVR的缺点也是显然的,它建立的并不是真正的三维场景,其交互性也较差.
一些成熟的应用如基于全景图的虚拟环境,广泛的应用于旅游景区展示,房地产展示等.
1.5 相关研究机构和研究课题简介
Web3D联盟[9]是Web3D技术管理组织,主要负责有关Web3D标准的研究,定义和推广工作.继VRML1.0和VRML97之后,Web3D Consortium正在制定X3D标准.X3D是下一代的开放式的网络三维的标准,它是一种可扩展的标准, X3D是基于VRML的,支持VRML的全部规格,完全支持VRML的内容.X3D支持XML编码,所以通过XML,X3D能够轻易的整合到网络浏览器或其他的应用程序里.除了和XML的紧密结合,X3D还是MPEG-4支持的3D技术.
ParallelGraphic Inc.[10]公司以VRML97为主要技术基础,是目前VRML应用领域极具活力的一家公司,Cortona浏览器就是由ParallelGraphic Inc.公司开发.Contona除支持VRML97外,还支持多种功能扩展,如键盘输入,拖放控制等.Contona也是支持EAI(External Authoring Interface)功能的为数不多的浏览器之一.ParallelGraphics在教学,网上商业展示,虚拟展示空间等多方面都有大量的应用实例.
Eyematic是一家开发基于网络的多媒体应用的公司.Eyematic公司的Shout3D是一个采用Java技术的Web3D成功案例.
Shout3D是以VRML为基础,遵循VRML,X3D规范的一个基于Java Applet的渲染引擎,可以在标准的浏览器内部运行而不需要插件的下载安装.Shout3D既是3D场景的传颂机构,也是创建用户交互行为的工具集.Shout3D还提供了大量的VRML所没有的功能特性,如Multi Texturing with MultiAppearance支持直接光,凹凸,环境,Alpha通道,高光贴图等模式;MultiMesh Geometry支持光滑组和多层次物体贴图.Panoramic Backgrounds可作为全景背景.这些高级功能对于建立高质量的三维虚拟场景是至关重要的.
以上提及一些公司一方面参与制订Web3D标准,一方面又相对独立的开发自己的技术,不同的产品都有自己的适应领域,比如Shout3D在商业广告展示方面有独特的优势,而其它方面引用则较弱.另外,这些技术不是完全开放,对于开发专业应用缺乏技术细节的支持.
1.6 Web3D技术在建筑相关领域应用研究介绍
目前,不少大学的建筑院系及科研机构对Web3D及虚拟现实相关应用有大量研究:
(1)香港中文大学建筑系邹经宇,薛玉彩等人在城市虚拟三维地理环境模型下,对城
市公共空间的视觉质量进行了量化研究[11].
(2)香港中文大学建筑系采用VRML建立了古典建筑三维模型,并在香港中文大学网站上发布[12].
(3)武汉大学测绘遥感信息工程国家重点实验室朱庆等人在三维城市模型与数码城市GIS课题中讨论CAD技术和虚拟现实技术的集成[13].
(4)东南大学建筑系对虚拟现实技术在网络协作中的应用研究,总结了近几年国外将虚拟现实技术应用于建筑设计领域的科研成果,并根据国内的现状,提出虚拟现实技术在我国建筑设计领域应用的发展思路[14].
(5)芬兰Tampere University of Technology的数字媒体研究所A. Heinonen, S. Pulkkinen, 和I. Rakkolainen提出了一个基于VRML虚拟城市的城市信息管理系统应用模型[15],采用VRML EAI和Java JDBC实现.
(6)采用Web3D技术建立的http://www.navigram.com网站将Web3D技术应用于城市设计及房地产展示等项目[16].
1.7 论文内容及介绍
本论文主要讨论将VRML与Java3D结合起来,根据虚拟建筑环境的特点,构建基于Web的3D应用.
1.7.1综合应用Java3D及VRML构建Web3D应用
尽管VRML在Web3D应用中已比较广泛,但也存在其局限性.首先是浏览VRML场景需要下载安装相应的浏览器插件,使用户感到不便.另外,VRML是用于建立基于互联网的虚拟场景的描述语言,其提供的交互能力很不足.另外,场景描述信息与程序控制脚本共存与一个VRML文件中不便开发者使用.
一种增强VRML交互能力的解决方法是实现VRML的EAI(External Authoring Interface)[17]接口.EAI定义了一套针对VRML浏览器的Java类,这些类提供了访问当前VRML场景的接口,可以编写外部程序操作,控制,修改VRML场景内的对象,实现与场景的交互.
在实际应用中,EAI允许同一Web页的Applet和VRML场景进行通信,而Java Applet同VRML场景之间通信实施的任一细节都可能与浏览器及其运行的平台有关.目前包括Cosmo Player[18], Blaxxun Contact[19],Cortona[20]等在内的浏览器插件对Java的支持并不理想.
ava是高效,健壮,安全的编程语言,尤其适合Internet开发.Java3D是Java在三维图形方面的扩展.Java3D基于OpenGL等底层的API,同时结合了Java语言的网络功能,很好的解决了网络,跨平台环境的三维可视化问题.
对于一些高级应用,如实现计算过程的三维可视化,复杂的交互功能等,Java3D具有比VRML无法相比的能力.另外,大量的研究集中在Web3D及虚拟现实等技术的实施细节之上,针对这些问题给出了很多优秀的算法,这些成果有待于进一步转化为实际应用.选用Java3D作为基于网络的虚拟建筑环境的开发平台,有助于在应用中不断采用更为先进的算法,形成独立的技术核心.Java本身是一种编程语言,不会涉及任何商业类技术问题,而采用其它商业Web3D技术平台,开发者不能了解其底层实施细节,不利于长期发展.
1.7.2论文的内容介绍
在关于虚拟建筑环境相关问题的讨论与研究中,我们采用了VRML97作为场景的描述工具,而采用Java3D实现三维虚拟场景的显示,用户与三维场景交互以及其它与建筑虚拟环境相关功能,如建筑外观纹理的实时替换,在三维场景内实现建筑属性的查询等.论文首先概括地介绍了VRML建立的三维虚拟场景中的应用.
论文提出了采用VRML用于虚拟场景描述,采用Java3D实现虚拟三维场景显示,实现与用户交互的虚拟建筑环境实现方案,并给出了部分实现细节.
论文最后结合Web3D技术的最新发展进一步讨论了虚拟建筑环境相关的一些应用及实现的问题以及Web3D在虚拟建筑环境中的应用展望.
限于本人能力,很多重要问题可能未被提及,即使提及也往往涉及不深,以期抛砖引玉或留待以后解决.
上一页1234567