VRML虚拟图书馆的构建与优化浏览①
2016-06-15许爱军李锋广州铁路职业技术学院广州50430广东交通职业技术学院广州50650
许爱军,李锋(广州铁路职业技术学院,广州 50430)(广东交通职业技术学院,广州 50650)
VRML虚拟图书馆的构建与优化浏览①
许爱军1,李锋2
1(广州铁路职业技术学院,广州 510430)
2(广东交通职业技术学院,广州 510650)
摘 要:鉴于虚拟校园广受关注和VRML广泛应用的背景,以虚拟图书馆建设为例,探讨VRML虚拟场景的构建、优化和调度问题.给出了虚拟图书馆的开发流程,并从基础数据收集与整理、三维模型建立、三维模型优化等方面,给出了虚拟图书馆的构建过程.采用基于VisibilitySensor的调度算法,对进入视域范围的场景进行调度.利用LOD思想,对视域内的物体根据视点距离调度不同精度的模型,实现了VRML场景的快速浏览.经过发布与测试,表明VRML虚拟图书馆具有操作简单、逼真度高、适应性强等特点,在网络运行顺畅,实用价值较高.关键词: VRML; 虚拟现实; 虚拟图书馆; 开发与应用
随着教育投入不断加大,高等院校逐渐建立起相对完善的校园环境,以满足教学、科研和学习生活的需要.如何将优美的教学环境真实呈现给社会,加深社会公众对学校的认可度、提高学校的知名度,将是十分迫切的现实问题.虚拟现实技术进入教育领域后,高校数字校园建设的层次和水平得到较大提升,并开启了利用虚拟现实技术呈现真实校园的研究热潮.
国内最早开展VRML虚拟校园研究的高校是天津大学(1996年),此后,浙江大学、北京航空航天大学、华中科技大学、香港中文大学等也相继建立虚拟校园漫游系统,以集中展示校园风貌和文化氛围.可以说,以虚拟现实技术促进高校信息化建设、宣传校园文化、提升学校知名度和影响力,已成为现代教育技术界的广泛共识[1].
VRML(Virtual Reality Modeling Language,虚拟现实建模语言)是一种建立三维虚拟世界的造型语言,具有良好的跨平台性,已成为Internet上描述三维虚拟世界的标准格式规范[2].VRML具有简单、交互能力较强、适合低带宽传输等特点,在工业交通、医疗器械、教育培训和航空航天等领域得到广泛应用.
鉴于虚拟校园广受关注和VRML广泛应用的背景,本文以VRML虚拟图书馆建设为例,探讨VRML构建虚拟场景的开发流程、建模方法和调度优化策略,以期为同类研究提供参考.
1 虚拟图书馆总体设计
1.1需求分析与设计
虚拟图书馆将传统的图书馆从二维拓展为三维,更逼真地呈现馆体概貌,方便用户在异地通过网络实时浏览,有如身临其境之感.为此,虚拟图书馆要满足以下需求:
(1)能真实展示图书馆的整体结构和外部框架,包括图书馆的外观形状、地理位置、周围环境等;
(2)能逼真地展示图书馆的内部结构,包括各种功能的房间,每个书库的书桌、椅子、书架和图书等;
(3)能实现多种形式的漫游,在漫游过程中能搬动桌椅、翻阅书本、打开门窗、控制开关等,实现简单的交互功能;
(4)虚拟图书馆能在线浏览,模型渲染速度较快,浏览顺畅度较高.
为满足以上需求,将虚拟图书馆分为馆外和馆内两大部分.其中,馆外包括图书馆的整体外观和四周环境,馆内包括各种办公场地和桌椅、图书等物体.由于虚拟图书馆的各个对象是通过空间相对位置关系组织在一起的,因此要先建立一个对象作为参照物[3],其它对象以此为参照合理布局.经过分析,本文选取图书馆门口的道路作为参照物,依照由外至内、由下至上、从左至右的原则,形成虚拟图书馆的场景结构如图1所示.
1.2开发工具与流程
尽管VRML语法简单,但若用手工编写代码则相当繁琐.尤其是对不规则造型物体的建模,则显得十分困难[4].在实际的开发过程中,需要用到多种虚拟现实软件,遵循如图2所示的开发流程.
具体流程是: 首先,利用专业的三维建模软件(如: 3DS Max、Maya)建立实体对象的三维模型,采用纹理贴图、渲染生成后,形成单个物体模型; 其次,将模型导入可视化编辑软件(如: InternetSpace Builder、Cosmo Worlds)中进行合并,通过复制和旋转等操作,将单个模型放置到合适位置,建立起整体场景; 再次,用Java或JavaScript编写程序扩展VRML的功能,为场景添加交互; 然后,在文本编辑软件(如: Vrmlpad)中压缩和优化VRML模型文件,提高系统运行整体性能;最后,将生成的场景文件插入网页,向网络发布.
本文采用的开发工具是: 以VRML为基础开发语言,用3D Studio Max作为主要建模工具,用Sgi公司的可视化编辑工具CosmoWorld将模型内联,用VRML脚本编辑软件Vrmlpad中进行代码优化,添加交互脚本,采用Cortona VRML浏览器预览效果.
2 虚拟图书馆三维场景构建
三维模型的建立是实现虚拟图书馆的基础.在建模中,应用需求对模型的精度要求、建设周期对建模的效率要求、建设资金对投入的成本要求等,综合决定了采取的建模方法.本文采用三维建模软件建立模型框架,大量使用纹理贴图来降低模型的复杂度,达到高效建模的目的.
2.1基础数据的收集与整理
基础数据包含图书馆的平面结构图和大量材质纹理数据.
平面结构图是指图书馆建设时的规划图,用AutoCAD将平面结构图简化修改,然后导入3DS MAX中进行建模.平面设计图就是建模的底图,决定了各个建筑场馆的具体方位、大小和位置.
图1 虚拟图书馆场景结构
图2 虚拟图书馆开发流程
纹理材质的获取主要是通过实地拍摄,然后将采集的照片进行正摄处理,便于贴图使用.照片处理需要用到图片处理软件(如: photoshop).为便于后期LOD (Levels of Detail)调度,每张纹理图片同时生成模糊、普通和清晰三个版本,分别存入三个不同的纹理库中.
2.2三维模型的建立
为利于模型的集成融合,在建模时要采用与现实一致的平面坐标,使用相同的长度单位进行制作.三维模型的建立包括模型结构设计和表面属性配置两个步骤.
2.2.1三维模型的结构设计
1)图书馆整体轮廓模型.以工程图纸为基础,先用Auto CAD绘制图书馆的CAD平面图,然后将其导入3DS MAX中,采用拉伸法形成建筑高度,然后使用shell命令增加墙面厚度,从而建立图书馆外围轮廓模型.这种根据平面图设计轮廓的方法,主要利用了3DS MAX 中的Extrude命令,建模简单、效率较高.
2)图书馆墙面设施模型.墙面设施主要包括窗体、通风口、大门、柱子等.窗体的建模主要采用extrude命令在墙体上进行挤压,形成孔洞.通风口的建模主要采用Boolean工具的差集命令,在墙体上减去长方体,绘制出通风口.大门建模先用Boolean命令得到矩形空洞,然后用捕捉工具捕捉空洞平面,即可制作大门的边框.柱子的建模直接构建4个长方体,放到相应位置即可.绘制完成的图书馆外围模型如图3所示.
图3 虚拟图书馆外围模型
3)图书馆内部物体模型.图书馆内部物体模型包括书柜、书本、书桌、椅子等.书柜和书本模型可以直接采用绘制长方体的方式完成.书桌和椅子模型,需要先绘制各个部分的模型(书桌模型包括桌面和桌腿两部分,椅子模型包括椅架、坐垫、靠垫三部分),然后采用组合命令进行组成,完成模型的建立.绘制完成的书柜、书本、书桌、椅子模型如图4-7所示.
图4 书柜模型
图5 书本模型
图6 书桌模型
图7 椅子模型
2.2.2三维模型的表面属性配置
在场景建模中,合理使用纹理和材质来替代三维模型几何细节的表达,不仅可以减少三维模型的建模工作量,同时也不失模型的真实性和逼真度.
贴图就是把材质图片覆盖到模型上,使模型更贴近现实.下面以为地板赋予瓷砖材质为例,简要介绍贴图的基本方法:
第一步,选中地板,在材质编辑器中选择建筑材质,到图片库内选择一张瓷砖的图片拖至漫反射贴图空白处;
第二步,点击视窗里的图片,点击漫反射贴图,将平铺数改为4*4.由于地板是不规则图形,贴图此时无法显示,所以需要进入修改器下拉菜单,进入UV坐标,然后选择UVW贴图即可完成对地板的贴图,效果如图8所示.
图8 地板材质调节
利用相同的方法,将图书馆外墙、内墙、书架、桌椅等模型进行贴图,并进行简单渲染.
2.2.3环境特殊模型的建立
图书馆周围还存在一些特殊环境物体,如树木、路灯和天空等,这些特殊环境物体如果采用三维建模软件来建模,会花费大量的时间,同时也会产生大量的数据量.为此,本文采用透明单面技术解决树木、路灯和花草的建模问题.同时采用不透明单面技术,构建天空盒.
透明单面技术是指对采集到的纹理材质,先用图片处理软件进行透明化处理,删除与物体外观无关的背景,然后导入建模软件中直接贴图.这类纹理直接贴附在其他模型的上层,对下层模型不会遮挡,从而形成视角上的立体效果.
本文采用不透明单面技术构建天空背景,构建天空盒的基本步骤为:
首先,构建中心位于坐标原点的立方体,依此确定8个PositionColoredTextured顶点的坐标值(value);
其次,设定各顶点的贴图坐标(u,v),为天空盒的6个面匹配纹理;
再次,通过比例变换计算出本地天空盒.这里,天空盒的宽度不能太大,Jason Shankel[5]给出的公式为:
其中,Zfar为天空盒的中心距离场景相机远裁减面的长度.
最后,进行渲染呈现.为获得真实效果,要使天空盒的中心始终位于场景相机的视点位置.即:
其中,T(lookAt.x,lookAt.y,lookAt.z)代表场景相机视点的世界坐标.
2.2.4三维模型的合成
单个物体模型建立完成后,采用可视化编辑工具CosmoWorld将它们合并到一起形成整体.合并的思路是: 首先导入图书馆的整体模型,然后依次导入书桌、椅子、书柜、书本等.若要在多处位置放置同一个物体(如: 书桌、椅子等),可以使用镜像工具不断复制生成多个物体,再放到对应的位置.若要调整物体方位,还需要进行旋转操作等.再次,导入周围环境特殊物体模型,与前期模型组合到一起.最后,将场景中的所有模型打包,形成整体场景.
在场景组合中,添加的模型数量不宜过多.否则,会严重降低场景的渲染效率,这为后期添加灯光和摄像机增加很大难度.因此,需要对场景中的模型进行适量删减,以保证虚拟场景运行速度和流畅度.
2.3三维模型的优化
尽管3DS MAX也能方便地添加灯光、视点等,但导出.wrl后,视点位置容易发生偏差,灯光效果也不理想[6].为此,本文利用VRML编辑器VrmlPad进行优化调节.
2.3.1模型贴图与材质的调节
在VRML中,物体的外部贴图由外观域节点(appearance)控制.贴图域的节点结构为: imagetexture {url"图像文件名"},其中url域指明贴图使用的图形名称和位置.
在调整材质时,先用VrmlPad打开模型,找到Indexedfaceset面集节点,调整color、colorindex和colorpervertex三个域值,就可以改变造型颜色.同样也可以对各个图形的子节点进行材质的编辑和表面贴图的修改.修改完成后可以进行调试.若出现错误,则返回修改.
2.3.2灯光的添加和设置
VRML浏览器在解释VRML文件时,会默认生成一个白色的平行光束照亮浏览者前方,但这个光源的颜色不能改变,也不能照亮整个场景.为此,需要为虚拟图书馆增加点光源,向四面八方发射光线,照亮图书馆内部场景.
建模时,可以在3DMAX确定灯光的位置,后期优化时只需要对灯源的颜色、辐射半径、明亮程度等进行设置.Pointlight点光源节点包括若干个域值,其中on域值用于设定点光源的打开与关闭; location用于设定点光源在当前坐标中的位置; radius域值用于设定点光源的辐射半径; Intensity域值用于设定点光源的明亮程度.灯光节点的主要代码如下:
2.3.3漫游视点的调节
为了让浏览者从不同视点观察图书馆,全方位感受图书馆的整体概貌,需要对视点进行调节.
在VRML中,可以用Viewpoint视点节点和Navigation导航节点来创建视点.其中,Viewpoint视点节点用于设置用户的观察视点,Navigation导航节点用于设置视点的移动方式,两者配合可以实现更为逼真的浏览效果.
本文共创建6个视点,分别至于图书馆的不同的位置,同时对Navigation导航节点进行编辑.Navigation导航节点有5种导航方式,分别为: 行走方式、飞行方式、观察方式、任意方式和不使用任何方式.本文还对浏览者的漫游信息进行设置,规定浏览者的身高、体宽和步高等.其中一个视点的代码如下:
2.3.4交互功能的实现
本文主要利用VRML的传感器(Sensor)机制实现交互功能,基本原理是: 在传递消息的节点中绑定路由,当传感器检测到用户与虚拟环境中的物体发生交互时,传感器将获取的交互信息经路由传送到其他节点或输出到外部脚本[7].VRML中的传感器主要有时间检测器(TimeSensor)、触动检测器和感知传感器三类.
本文利用ProximitySensor接近传感器创建图书馆的自动开关感应门.当用户进入大门预先设定的感知区域时,大门自动打开.当用户远离大门至预先设定的感知区域时,大门自动关闭.利用TouchSensor触摸传感器对书本位移动画进行控制.当用户点击书本不放,书本跟随替身一起移动,直到用户松开鼠标为止等.
3 虚拟图书馆的快速调度
3.1基于VisibilitySensor算法调度视域场景
虚拟图书馆中的物体模型较多,在浏览过程没有必要调入所有物体的模型.为此,本文采用基于VisibilitySensor的调度算法,只调度即将进入视域范围的模型,同时剔除消失于视域的模型,概括起来就是“可见就添加,不可见就剔除”.先将视域区域简化为一个扇形,进入扇形区域中的物体是可见的,则调入VRML场景中进行显示,在扇形区域以外的物体为不可见物体,需要从VRML场景中剔除.基本原理如图6所示.
当视角区域发生改变时,如果有物体进入视域范围,则将其调入显示; 如果有物体移出视域范围,则将其剔除.这样,就能保证进入视域范围的建筑物数量尽量少,达到快速浏览的目的.实现的伪代码为:
3.2基于LOD思想调度视域中的物体模型
对进入视域范围的模型,再根据物体距离视点的距离,分别调入不同精度的模型.由于在纹理和材质处理阶段,每张纹理同时生成模糊、普通和清晰三个版本.不同精度的纹理经过贴图后,就会生成不同精度的模型.LOD的基本思想就是利用一组(通常为3-5 个)不同精度的模型,在浏览中根据预先设定的距离阀值,调用不同精度的模型.距离较远时,调用模糊的模型,距离较近时调用清晰地模型,从而加快场景的渲染速度.VRML中LOD的基本语法为:
图9 基于VisibilitySensor的调度算法
其中,range域的值用来判断视点离物体多远时,调用level中排列的物体模型(从细到粗).这里的距离阀值d可依据文献[8]中的方法计算:
Rootsize是为物体立方体包围盒的范围大小,depth为level层次中的层次,errorrange是以百分比给出的误差范围大小.LOD的优点是简化计算在预处理过程进行,能减少实时绘制的计算开销.本文采用LOD思想,对进入视点范围的物体,根据视点距离调度不同精度的物体模型.
4 虚拟图书馆的发布与性能分析
4.1虚拟图书馆的发布
虚拟图书馆的发布,实际上是要让web服务器支持VRML文件[9].本系统采用微软IIS服务器进行发布,需要将Web服务器的MIME类型设置为model/VRML,Web服务器才能识别VRML文档.发布完成后的网上虚拟图书馆,能逼真展示学校图书馆的整体概貌,尤其是能真实展现图书馆的内部结构和各种藏书空间.用户打开网页就能以多种漫游方式浏览网上虚拟图书馆,并能实现搬动桌椅、翻阅书本、打开门窗、控制开关等简单的交互功能.经过测试,虚拟图书馆的渲染速度较快,浏览顺畅度较高,如图10所示.
图10 虚拟图书馆内部场景
4.2虚拟图书馆的性能分析
该虚拟图书馆仅花费4天时间就建设完成,场景三角面数由建立初的45786个减少到18359个,模型个数由123个减少到75个,载入场景文件时间约为3 秒,在配置为双核CPU、内存2G以上的个人PC机上正常运行,浏览顺畅性和逼真度都非常理想,验证了VRML建模方法与调度优化策略的合理性与有效性.
本系统基本实现了虚拟图书馆网上展示的目的,并具有以下功能特点:
1)具有操作简单、使用方便的特点,用户基于浏览器访问,只需要下载插件就可以使用;
2)具有导航清晰、支持多种漫游方式的特点,用户在漫游中可以选择飞行、行走、观察等不同漫游方式,体会不同感受;
3)具有逼真性高、适应性强的特点,支持跨平台运行,易于扩展和维护.
5 结语
VRML虚拟场景的构建既是一项复杂而细致的工作,同时也是地理信息系统、数字城市、虚拟景观等建设中面临的基本问题[10].尽管VRML模型建立与优化技术相对成熟,但作为一项基础工作,提高VRML模型的建模效率、降低三维模型数据传输量、优化场景调度方法,依然是虚拟仿真领域的不懈追求.
本文实现了真正意义上三维性、交互性、逼真程度高的虚拟图书馆,详细介绍了虚拟模型的建模过程、优化技术和快速调度方法.该系统在网上发布后一直稳定运行,获得良好评价.今后还将在利用外部编程接口EAI增加交互性、进一步提升场景绘制速度、增加动态虚拟场景等方面加以完善.
参考文献
1许爱军,张文金,易丹.基于VRML的虚拟现实技术及应用.计算机与数字工程,2009,(4):186–189.
2金伟英.基于VRML的轧机主体虚拟现实[硕士学位论文].秦皇岛:燕山大学,2010.
3宋慧玲.基于VRML的地学虚拟博物馆漫游系统的研究与实现[硕士学位论文].武汉:中国地质大学,2004.
4宋丽敏.面向Internet的虚拟场馆建模技术的研究[硕士学位论文].沈阳:沈阳工业大学,2009.
5石敏,王俊铮,魏家辉.真实感三维虚拟场景构建与漫游方法.系统仿真学报,2014,(9):1969–1974.
6张瑞菊.SketchUp结合GoogleEarth在虚拟校园中的应用.计算机应用,2013,33(S1):271–272,297.
7许爱军,张文金,黄正午.支持协同工作的VRML网络虚拟现实系统.计算机仿真,2009,(11):287–290.
8Schmalsiteg D.LODSTAR: An octree-based level of detail generator for VRML[Technical Report].Vienna University of Technology,Austria.1998.
9王文剑,史颖,任镤.基于虚拟现实技术的大型场景视景仿真.山西大学学报(自然科学版),2014,37(1):64–69.
10庞存岐,丘均,蔡声镇.大规模室外场景中漫游实时渲染技术研究.福建师范大学学报(自然科学版),2013,(5):37–41.
Construction and Optimization of VRML Virtual Library
XU Ai-Jun1,LI Feng2
1(Guangzhou Railway Polytechnic,Guangzhou 510430,China)
2(Guangdong Communication Polytechnic,Guangzhou 510650,China)
Abstract:In the view of wide application of virtual campus based on VRML,taking the construction of Virtual Library as an example,this paper discusses the construction and optimization of VRML virtual scene.The development process from basic data collection,3D model establishment,3D model optimization angles is presented.Using visibility sensor schedule algorithm and LOD idea,this paper dispatches the scene in horizon range,achieving a quick view of the VRML scene by dispatching object in the horizon according to the viewpoint of distance operation.Through publication and testing,the VRML virtual library has the characteristics of simple operation,high fidelity,strong adaptability and high practical value.
Key words:VRML; virtual reality; virtual library; development and application
基金项目:①2014年广州市哲学社会科学“十二五”规划课题(14G56);广东省教育科学“十二五”规划2014年度教育信息技术研究项目(14JXN018);广州市教育科学2013年度课题(2013A238)
收稿时间:2015-08-18;收到修改稿时间:2015-11-11